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

Mary-Kate Olsen
Libérer: 2024-11-21 12:08:11
original
405 Les gens l'ont consulté

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

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)
    Copier après la connexion
  2. Démarrer les processus :

    p1.start()
    p2.start()
    Copier après la connexion
  3. Attendez que les processus complet :

    p1.join()
    p2.join()
    Copier après la connexion

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

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

runInParallel(func1, func2)
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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal