Comment partager une file d'attente de résultats entre plusieurs processus en Python ?

Susan Sarandon
Libérer: 2024-10-19 18:45:02
original
619 Les gens l'ont consulté

How to Share a Result Queue Between Multiple Processes in Python?

Comment partager une file d'attente de résultats entre plusieurs processus

Lorsque vous travaillez avec des processus de travail asynchrones à l'aide de apply_async du module multiprocessing (), il est important de réfléchir à la manière de partager une file d'attente en toute sécurité. L'erreur « RuntimeError : Les objets de file d'attente ne doivent être partagés qu'entre les processus via l'héritage » souligne la nécessité de transmettre la file d'attente de manière à éviter les problèmes de décapage/décapage.

Pour résoudre ce problème, nous pouvons exploiter le multiprocessing.Manager (), qui fournit un moyen de gérer les objets et de les rendre accessibles à différents travailleurs.

<code class="python">import multiprocessing

def worker(name, que):
    que.put("%d is done" % name)

if __name__ == '__main__':
    pool = multiprocessing.Pool(processes=3)
    m = multiprocessing.Manager()
    q = m.Queue()
    workers = pool.apply_async(worker, (33, q))</code>
Copier après la connexion

Dans cet exemple, nous créons un objet Manager (m) et l'utilisons pour gérer la file d'attente (q). Ce faisant, nous créons un segment de mémoire partagée qui permet à plusieurs processus d'accéder à la file d'attente en toute sécurité, même dans des scénarios asynchrones.

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
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!