Maison  >  Article  >  développement back-end  >  Affichage des fonctions du pool de processus Python et exemple d'analyse

Affichage des fonctions du pool de processus Python et exemple d'analyse

乌拉乌拉~
乌拉乌拉~original
2018-08-23 17:41:502114parcourir

Dans l'article suivant, nous découvrirons ce qu'est le pool de processus en python. Découvrez le pool de processus Python et le rôle qu'il peut jouer dans la programmation Python.

Pool de processus

La classe Pool décrit un pool de processus de travail. Elle dispose de plusieurs méthodes différentes pour que les tâches puissent décharger les processus de travail.

Le pool de processus maintient une séquence de processus en interne. Lorsqu'il est utilisé, il va dans le pool de processus pour obtenir un processus. S'il n'y a pas de processus disponible dans la séquence du pool de processus, le programme attendra qu'il soit dans le pool de processus. pool de processus jusqu’à ce qu’il y ait des processus disponibles.

Nous pouvons utiliser la classe Pool pour créer un pool de processus et étendre les tâches soumises au pool de processus.

Donnons un exemple :

#apply
from  multiprocessing import Pool
import time

def f1(i):
    time.sleep(0.5)
    print(i)
    return i + 100
if __name__ == "__main__":
    pool = Pool(5)
    for i in range(1,31):
        pool.apply(func=f1,args=(i,))
        
#apply_async
def f1(i):
    time.sleep(0.5)
    print(i)
    return i + 100
def f2(arg):
    print(arg)
    
if __name__ == "__main__":
    pool = Pool(5)
    for i in range(1,31):
        pool.apply_async(func=f1,args=(i,),callback=f2)
    pool.close()
    pool.join()

Un objet pool de processus peut contrôler quels travaux dans le pool de processus de travail peuvent être soumis. Il prend en charge les résultats asynchrones des délais d'attente et des rappels. -comme une réalisation.

processus : le nombre de processus de travail utilisés. Si les processus sont Aucun, utilisez le nombre renvoyé par os.cpu_count().

initializer : Si initializer est None, alors chaque processus de travail appellera initializer(*initargs) au début.

maxtasksperchild : nombre de tâches pouvant être terminées avant la fin du processus de travail. Une fois terminé, un nouveau processus de travail sera utilisé pour remplacer le processus d'origine afin de libérer les ressources inutilisées. maxtasksperchild est défini par défaut sur Aucun, ce qui signifie que le processus de travail survivra tant que le pool existera.

contexte : utilisé pour définir le contexte au démarrage du processus de travail. Généralement, la méthode multiprocessing.Pool() ou la méthode Pool() d'un objet contextuel est utilisée pour créer un pool de manière appropriée. 🎜>

Remarque : Les méthodes de l'objet Pool ne peuvent être appelées que par le processus qui a créé le pool.

Ce qui précède est tout le contenu décrit dans cet article. Cet article présente principalement les connaissances pertinentes du

pool de processus python. J'espère que vous pourrez utiliser les informations pour comprendre le contenu ci-dessus. J'espère que ce que j'ai décrit dans cet article vous sera utile et vous facilitera l'apprentissage de Python.

Pour plus de connaissances connexes, veuillez visiter la colonne

Tutoriel Python du site Web php chinois.

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!

Déclaration:
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