Comment transmettre un seul paramètre et plusieurs paramètres au pool de threads Python ThreadPoolExecutor

王林
Libérer: 2023-04-19 19:22:04
avant
2463 Les gens l'ont consulté

    Pool de threads Python ThreadPoolExecutor, passant un seul paramètre et plusieurs paramètres

    Il s'agit du pool de threads passant un seul paramètre

    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()
    Copier après la connexion

    Ce qui suit passe plusieurs paramètres

    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())
    Copier après la connexion

    L'essentiel est pool.submit(lambda cxp : test (*cxp), (j ,k))

    Cette ligne de code doit être démontée pour la regarder

    La première est la fonction anonyme : lambda cxp:test(*cxp) C'est la première étape

    Cela signifie : Passez le paramètre cxp à tester

    La deuxième étape est submit(lambda cxp:test(cxp),(j,k))

    La méthode sumbit nécessite de passer deux paramètres, la première est Function , le deuxième est le paramètre de cette fonction

    Pour l'instant, la fonction anonyme est le premier paramètre, et ensuite (j,k) est le deuxième paramètre. Ce paramètre doit être transmis à la fonction, donc (j,k) est donné le pool de threads cxp

    python passe dans plusieurs paramètres ThreadPoolExecutor.submit support multi-paramètres

    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)
    Copier après la connexion

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Étiquettes associées:
    source:yisu.com
    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!