Accès aux valeurs de retour des processus multitraitements
Lorsque vous travaillez avec le multitraitement en Python, il peut y avoir des cas où vous devez récupérer les valeurs de retour de fonctions transmises au multiprocessing.Process. Comprendre comment cela peut être réalisé aide à utiliser efficacement la classe Process pour le traitement parallèle.
Dans l'exemple de code fourni, la fonction de travail renvoie la valeur procnum. Pour accéder à cette valeur, nous ne pouvons pas l'obtenir directement à partir de la liste des tâches, car ces objets stockés sont des instances de la classe Process et ne conservent pas les valeurs de retour de la fonction.
Au lieu de cela, des variables partagées peuvent être utilisées pour faciliter la communication. entre les processus et récupérer le résultat souhaité. En utilisant la classe multiprocessing.Manager, nous pouvons établir des dictionnaires partagés ou d'autres structures de données qui permettent à plusieurs processus d'interagir et d'échanger des informations.
Dans le code modifié, un return_dict est créé à l'aide de la méthode manager.dict() , qui gère un dictionnaire partagé entre les processus. La fonction de travail met à jour ce dictionnaire partagé avec la valeur de retour de son processus respectif. Lorsque le processus principal rejoint les processus enfants, il récupère les valeurs de return_dict et les imprime, démontrant la récupération réussie des valeurs de retour.
Grâce à ce mécanisme de variables partagées, nous pouvons accéder efficacement aux valeurs de retour de fonctions exécutées au sein de processus multitraitements, facilitant la coordination avancée et l'échange de données au sein des applications Python multithread.
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!