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

Comment récupérer les valeurs de retour des fonctions Multiprocessing.Process en Python ?

Mary-Kate Olsen
Libérer: 2024-12-02 19:07:26
original
608 Les gens l'ont consulté

How to Retrieve Return Values from Multiprocessing.Process Functions in Python?

Accès à la valeur de retour d'une fonction en multitraitement.Process

En multitraitement avec Python, obtention de la valeur de retour d'une fonction passée en multitraitement. Le processus peut être délicat, car il n'est pas stocké directement dans l'objet Process.

Considérez ce qui suit exemple :

import multiprocessing

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


if __name__ == '__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

Bien que ce code imprime la sortie de chaque processus de travail, nous ne pouvons pas accéder directement à leurs valeurs de retour.

Pour récupérer les valeurs de retour, nous pouvons utiliser une variable partagée. Dans le code révisé suivant, un Manager() du module multitraitement est utilisé pour créer un dictionnaire partagé :

import multiprocessing


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


if __name__ == "__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

Ici, chaque processus de travail met à jour le dictionnaire partagé return_dict avec sa valeur de retour. Le processus principal peut alors accéder à ces valeurs depuis le dictionnaire partagé.

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