Maison > développement back-end > Tutoriel Python > Comment récupérer les valeurs de retour des fonctions multiprocessing.Process ?

Comment récupérer les valeurs de retour des fonctions multiprocessing.Process ?

Patricia Arquette
Libérer: 2024-11-29 06:30:12
original
838 Les gens l'ont consulté

How to Retrieve Return Values from multiprocessing.Process Functions?

Comment récupérer les valeurs de retour des fonctions transmises à multiprocessing.Process

Lors du passage d'une fonction à multiprocessing.Process, il est souvent nécessaire de récupérer la valeur de retour de la fonction. Cependant, ces valeurs ne sont pas facilement accessibles dans les objets Process renvoyés.

Considérez le code suivant :

import multiprocessing

def worker(procnum):

'''worker function'''
print str(procnum) + ' represent!'
return procnum

Copier après la connexion

si nom == '__main__' :

jobs = []
for i in range(5):
    p = multiprocessing.Process(target=worker, args=(i,))
    jobs.append(p)
    p.start()

for proc in jobs:
    proc.join()
print jobs
Copier après la connexion

Les valeurs de retour attendues ne sont pas disponibles via les objets Processus dans 'jobs'.

Solution : Utiliser une variable partagée

Pour récupérer les valeurs de retour, une variable partagée peut être utilisée pour permettre la communication entre le processus principal et les processus de travail.

importer multitraitement

def worker(procnum, return_dict):

"""worker function"""
print(str(procnum) + " represent!")
return_dict[procnum] = procnum

Copier après la connexion

if nom == "__main__":

manager = multiprocessing.Manager()
return_dict = manager.dict()
jobs = []
for i in range(5):
    p = multiprocessing.Process(target=worker, args=(i, return_dict))
    jobs.append(p)
    p.start()

for proc in jobs:
    proc.join()
print(return_dict.values())
Copier après la connexion

Explication :

  • Un gestionnaire multitraitement est utilisé pour créer le dictionnaire partagé, 'return_dict'.
  • Chaque processus de travail accède au 'return_dict' partagé et stocke sa valeur de retour sous son numéro de processus comme clé.
  • Le processus principal récupère les valeurs de retour en accédant les valeurs du dictionnaire.

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