Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich globale Variablen von Unterprozessen im Multiprocessing aktualisieren?

Wie kann ich globale Variablen von Unterprozessen im Multiprocessing aktualisieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-06 07:54:02582Durchsuche

How Can I Update Global Variables from Subprocesses in Multiprocessing?

Mehrfachverarbeitung | Globale Variablenaktualisierungen werden nicht an das übergeordnete Element zurückgegeben

Beim Multiprocessing wird jeder Unterprozess als separate Python-Instanz mit eigenem Speicher und eigenem globalen Status ausgeführt. Daher sind alle an globalen Variablen innerhalb eines Unterprozesses vorgenommenen Aktualisierungen für den übergeordneten Prozess nicht sichtbar. Darüber hinaus müssen Daten, die zwischen Prozessen über gemeinsame Proxys oder Warteschlangen weitergegeben werden, auswählbar sein.

Um das spezifische Problem hinsichtlich der Nichtauswählbarkeit eines LORR-Objekts zu lösen, ziehen Sie die folgenden Ansätze in Betracht:

  1. Erstellen Sie eine einwählbare Unterklasse von LORR:
    Dazu gehört das Erstellen einer neuen Klasse, die von LORR erbt und die Methoden __getstate__ und __setstate__ implementiert, um das Beizen zu ermöglichen.
  2. Übergeben Sie einen Verweis auf a ctype-Objekt:
    Finden Sie eine Möglichkeit, die relevanten Daten in einem ctype-Objekt zu speichern und einen Verweis auf dieses Objekt an den untergeordneten Prozess zu übergeben. Dieser Ansatz ist jedoch möglicherweise nicht zuverlässig.
  3. Verwenden Sie Warteschlangen zum Senden von Nachrichten:
    Stellen Sie mithilfe von Warteschlangen ein Kommunikationssystem zwischen den übergeordneten und untergeordneten Prozessen her. Das übergeordnete Element kann Methodenaufrufe an das untergeordnete Element senden und das untergeordnete Element kann die Ergebnisse über die Warteschlange zurückgeben.

Denken Sie daran, dass der am besten geeignete Ansatz von der spezifischen Implementierung und den Fähigkeiten des LORR-Objekts abhängt.

Das obige ist der detaillierte Inhalt vonWie kann ich globale Variablen von Unterprozessen im Multiprocessing aktualisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn