Maison >développement back-end >Tutoriel Python >Comment puis-je exécuter des fonctions Python en parallèle à l'aide du multitraitement ?

Comment puis-je exécuter des fonctions Python en parallèle à l'aide du multitraitement ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-29 20:07:13239parcourir

How Can I Run Python Functions in Parallel Using Multiprocessing?

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!

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