Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich globale Variablen im übergeordneten Prozess aktualisieren, wenn ich Multiprocessing in Python verwende?

Wie kann ich globale Variablen im übergeordneten Prozess aktualisieren, wenn ich Multiprocessing in Python verwende?

Barbara Streisand
Barbara StreisandOriginal
2024-11-07 02:50:02228Durchsuche

How Can I Update Global Variables in the Parent Process When Using Multiprocessing in Python?

Multiprocessing kann globale Variablen im übergeordneten Prozess nicht aktualisieren

Beim Multiprocessing existieren die übergeordneten und untergeordneten Prozesse in separaten Python-Instanzen mit ihren eigenen Speicher und globale Variablen. Änderungen an gemeinsam genutzten globalen Variablen in untergeordneten Prozessen sind für den übergeordneten Prozess nicht zugänglich. Darüber hinaus verhindern die durch Serialisierungsprotokolle wie Pickle auferlegten Einschränkungen die Übertragung von nicht pickbaren Objekten.

Die Herausforderung angehen

Eine mögliche Lösung besteht darin, eine Möglichkeit zum Speichern von Daten zu finden Verwendung von ctype-Objekten, wodurch Verweise auf den Speicher an untergeordnete Prozesse übergeben werden können. Dieser Ansatz ist jedoch nicht einfach.

Spezifisch für das LORR-Objekt

Die Nichtbeizbarkeit des LORR-Objekts stellt eine weitere Herausforderung dar. Um dies zu überwinden, könnte man erwägen, LORR in Unterklassen zu unterteilen und die Methoden __setstate__ und __getstate__ zum Beizen zu implementieren. Alternativ ist es möglicherweise möglich, die erforderlichen Daten aus der LORR-Instanz zu extrahieren und sie als Zeichenfolge über Warteschlangen zu übergeben, wodurch die Notwendigkeit einer Objektserialisierung entfällt. Bei diesem Ansatz werden Nachrichtenanweisungen an untergeordnete Prozesse gesendet und Antworten mit den erforderlichen Daten empfangen.

Das obige ist der detaillierte Inhalt vonWie kann ich globale Variablen im übergeordneten Prozess aktualisieren, wenn ich Multiprocessing in Python verwende?. 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