ホームページ  >  記事  >  バックエンド開発  >  単一のパラメータと複数のパラメータをPythonスレッドプールに渡す方法ThreadPoolExecutor

単一のパラメータと複数のパラメータをPythonスレッドプールに渡す方法ThreadPoolExecutor

王林
王林転載
2023-04-19 19:22:042502ブラウズ

    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()

    次の複数のパラメータを渡す主な方法は、pool.submit(lambda cxp:test(*cxp),(j,k))です。

    このコード行は、逆アセンブルして表示する必要があります。

    最初は匿名関数です: lambda cxp:test(*cxp) これが最初のステップです

    これは意味します: cxp パラメータを test に渡します

    2 番目のステップは submit(lambda cxp:test(cxp),(j,k))

    sumbit メソッドには 2 つのパラメータを渡す必要があります。最初のパラメータは関数で、2 番目のパラメータは this のパラメータです。 function

    先ほどの匿名関数が最初のパラメータで、(j,k) が 2 番目のパラメータです。このパラメータは関数に渡されるため、(j,k ) は cxp

    を与えます

    複数のパラメータを渡すための Python スレッド プール ThreadPoolExecutor.submit マルチパラメータ サポート

    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())

    以上が単一のパラメータと複数のパラメータをPythonスレッドプールに渡す方法ThreadPoolExecutorの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。