Maison > développement back-end > Tutoriel Python > Comment partager un dictionnaire entre plusieurs processus à l'aide du multitraitement ?

Comment partager un dictionnaire entre plusieurs processus à l'aide du multitraitement ?

Patricia Arquette
Libérer: 2024-11-27 08:38:10
original
299 Les gens l'ont consulté

How to Share a Dictionary Between Multiple Processes Using Multiprocessing?

Comment partager un dictionnaire entre plusieurs processus à l'aide du multitraitement

Lors de la création de plusieurs processus qui fonctionnent sur une file d'attente partagée et utilisent un dictionnaire global pour stockage des résultats, il est crucial de résoudre les problèmes de synchronisation pour garantir une manipulation précise des données.

Une approche pour synchroniser l'accès à un dictionnaire partagé consiste à utiliser un objet Manager. Manager fournit un mécanisme pour créer et gérer des objets partagés accessibles par plusieurs processus.

Dans ce scénario spécifique, vous pouvez incorporer un objet Manager dans votre code comme suit :

from multiprocessing import Process, Manager

def f(d):
    d[1] += '1'
    d['2'] += 2

if __name__ == '__main__':
    manager = Manager()

    d = manager.dict()
    d[1] = '1'
    d['2'] = 2

    p1 = Process(target=f, args=(d,))
    p2 = Process(target=f, args=(d,))
    p1.start()
    p2.start()
    p1.join()
    p2.join()

    print(d)
Copier après la connexion

La méthode Manager.dict() crée un dictionnaire partagé accessible par n'importe quel processus. En passant ce dictionnaire en argument à chaque processus, vous leur permettez de manipuler les données simultanément.

En rejoignant les processus, le processus principal peut imprimer le contenu du dictionnaire partagé, qui reflétera désormais les résultats accumulés. par tous les processus enfants.

Cette approche garantit que tous les processus ont accès au même dictionnaire et que les modifications apportées par un processus sont visibles par les autres, résolvant ainsi le problème de synchronisation.

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