Bagaimana untuk menghantar parameter tunggal dan berbilang parameter ke kolam benang python ThreadPoolExecutor

王林
Lepaskan: 2023-04-19 19:22:04
ke hadapan
2490 orang telah melayarinya

    kumpulan benang ular sawa ThreadPoolExecutor, melepasi parameter tunggal dan berbilang parameter

    Ini ialah kumpulan benang yang melepasi parameter tunggal

    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()
    Salin selepas log masuk

    Berikut adalah untuk lulus berbilang parameter

    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())
    Salin selepas log masuk

    Perkara utama ialah pool.submit(lambda cxp:test(*cxp),(j,k))

    Barisan kod ini memerlukan untuk dibongkar Lihat

    Yang pertama ialah fungsi tanpa nama: lambda cxp:test(*cxp) Ini adalah langkah pertama

    Ini bermakna: lulus parameter cxp ke dalam ujian.

    Langkah kedua ialah serahkan(lambda cxp:test(cxp),(j,k))

    Kaedah sumbit memerlukan dua parameter ialah fungsi, dan yang kedua ialah parameter fungsi ini

    Fungsi tanpa nama tadi ialah parameter pertama, dan kemudian (j, k) ialah parameter kedua Parameter ini akan dihantar ke fungsi , jadi (j, k) memberikan cxp

    kumpulan benang ular sawa untuk dihantar dalam berbilang parameter ThreadPoolExecutor.serahkan sokongan berbilang parameter

    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)
    Salin selepas log masuk

    Atas ialah kandungan terperinci Bagaimana untuk menghantar parameter tunggal dan berbilang parameter ke kolam benang python ThreadPoolExecutor. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Label berkaitan:
    sumber:yisu.com
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!