So übergeben Sie einzelne Parameter und mehrere Parameter an den Python-Thread-Pool ThreadPoolExecutor

王林
Freigeben: 2023-04-19 19:22:04
nach vorne
2492 Leute haben es durchsucht

    python线程池ThreadPoolExecutor,传单个参数和多个参数

    这是线程池传单个参数的

    from concurrent.futures import ThreadPoolExecutor,as_completed
    def test(a):
            print(a)
    
    qq = {"a":"1","b":"2","c":"3"}
    with ThreadPoolExecutor() as pool:
        for j ,k in qq.items():
            res = pool.submit(test,j)
            kk = res.result()
    Nach dem Login kopieren

    下面是传多个参数的

    from concurrent.futures import ThreadPoolExecutor,as_completed
    def test(a,b):
            print(a,b)
    
    qq = {"a":"1","b":"2","c":"3"}
    with ThreadPoolExecutor() as pool:
        for j ,k in qq.items():
            res = pool.submit(lambda cxp:test(*cxp),(j ,k))
            last= res.result())
    Nach dem Login kopieren

    主要就是 pool.submit(lambda cxp:test(*cxp),(j ,k))

    这行代码要拆开来看

    首先就是匿名函数 :lambda cxp:test(*cxp) 这是第一步

    这个的意思是:传cxp参数,传到test里

    第二步就是 submit(lambda cxp:test(cxp),(j ,k))

    sumbit的方法是要传两个参数的,第一个是一个函数,第二个是这个函数的参数

    刚刚匿名函数就是第一个参数,然后(j,k)是第二参数,这个参数是要传给函数的,于是 (j,k)就给了cxp

    python线程池传入多个参数 ThreadPoolExecutor.submit 多参数支持

    from concurrent.futures import ThreadPoolExecutor,as_completed
      
    def doFileParse(filepath,segment,wordslist):
          print(filepath)
          print(segment)
      
    #调用方法
    #实质就是通过lambda表达式过渡。传入的参数是一个,但是通过lambda表达多后拆散为多个传入。这是很巧妙的方法,实际 就是 *p 这个表达式。
    args =[filepath,thu1,Words]
     
    newTask=executor.submit(lambda p: doFileParse(*p),args)
    Nach dem Login kopieren

    Das obige ist der detaillierte Inhalt vonSo übergeben Sie einzelne Parameter und mehrere Parameter an den Python-Thread-Pool ThreadPoolExecutor. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Verwandte Etiketten:
    Quelle:yisu.com
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!