Exécution parallèle de fonctions
En Python, l'exécution séquentielle des fonctions est le comportement par défaut. Cependant, lorsqu’il s’agit d’opérations gourmandes en ressources, il peut être avantageux d’exécuter plusieurs fonctions simultanément pour améliorer les performances. Cet article explique comment exécuter des fonctions en parallèle à l'aide du threading ou du multiprocessing.
Le threading et le multiprocessing sont deux bibliothèques qui fournissent respectivement des mécanismes pour les scénarios multithreading et multiprocessus. Bien que le threading soit plus léger, le multitraitement offre généralement de meilleures performances pour les tâches de calcul.
Prenons un exemple dans lequel nous souhaitons exécuter deux fonctions, func1 et func2, en parallèle. En utilisant le multitraitement, nous pouvons définir les fonctions comme :
def func1(): # Function 1 code print("func1: completing") def func2(): # Function 2 code print("func2: completing")
Pour exécuter les fonctions en parallèle, nous pouvons utiliser l'approche suivante :
from multiprocessing import Process p1 = Process(target=func1) p1.start() p2 = Process(target=func2) p2.start()
La méthode start() lance les processus , et ils s'exécutent simultanément. Pour garantir que notre processus principal attend la fin des processus enfants, nous pouvons utiliser la méthode join() :
p1.join() p2.join()
De plus, nous pouvons encapsuler l'exécution parallèle dans une fonction d'assistance :
def runInParallel(*fns): proc = [] for fn in fns: p = Process(target=fn) p.start() proc.append(p) for p in proc: p.join() runInParallel(func1, func2)
Cela nous permet d'exécuter plusieurs fonctions en parallèle avec un appel de fonction simple et concis.
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!