Maison  >  Article  >  développement back-end  >  Comment puis-je exécuter des fonctions Python simultanément en utilisant le multitraitement ?

Comment puis-je exécuter des fonctions Python simultanément en utilisant le multitraitement ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-21 12:08:11389parcourir

How Can I Run Python Functions Concurrently Using Multiprocessing?

Comment exécuter des fonctions simultanément en Python

Introduction

En Python, il peut être souhaitable d'exécuter plusieurs fonctions simultanément pour optimiser les performances, notamment lorsque les fonctions sont indépendantes et n'interfèrent pas les unes avec les autres. Cet article explore les techniques d'exécution de fonctions en parallèle.

Utilisation des threads et du multitraitement

En raison des limitations de l'interpréteur CPython, le threading peut ne pas fournir un véritable parallélisme. Le multitraitement, cependant, offre généralement de meilleures performances.

Exemple de mise en œuvre

Considérons l'exemple suivant où nous souhaitons exécuter deux fonctions, func1 et func2, en parallèle :

def func1():
    # Some code

def func2():
    # Some code

Pour exécuter ces fonctions simultanément en utilisant le multitraitement, nous pouvons utiliser ce qui suit étapes :

  1. Créer des objets de processus pour chaque fonction :

    p1 = Process(target=func1)
    p2 = Process(target=func2)
  2. Démarrer les processus :

    p1.start()
    p2.start()
  3. Attendez que les processus complet :

    p1.join()
    p2.join()

Encapsulation

Pour simplifier le processus d'exécution de fonctions en parallèle, nous pouvons définir une fonction utilitaire :

def runInParallel(*fns):
    # Start the processes
    for fn in fns:
        p = Process(target=fn)
        p.start()

    # Wait for the processes to finish
    for p in fns:
        p.join()

Grâce à cette fonction, nous pouvons désormais exécuter facilement les deux fonctions simultanément :

runInParallel(func1, func2)

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