Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Rückgabewerte von untergeordneten Prozessen im Multiprocessing abrufen?

Wie kann ich Rückgabewerte von untergeordneten Prozessen im Multiprocessing abrufen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-04 16:10:13276Durchsuche

How Can I Retrieve Return Values from Child Processes in Multiprocessing?

So erfassen Sie Rückgabewerte von prozessbasierten Funktionen im Multiprocessing

In Multiprocessing-Anwendungen besteht häufig die Notwendigkeit, die Rückgabewerte von abzurufen Funktionen, die von untergeordneten Prozessen ausgeführt werden. Der Grund dafür, dass dies nicht ohne weiteres zugänglich ist, liegt darin, dass untergeordnete Prozesse Werte nicht direkt an den Hauptprozess zurückgeben können. Es gibt jedoch Techniken, um diese Werte effektiv zu erfassen.

Im gegebenen Beispiel wird eine Liste von Arbeitsprozessen erstellt, um bestimmte Aufgaben auszuführen und ihre Prozessnummern zurückzugeben. Wenn man jedoch versucht, auf die Rückgabewerte der in der Liste „Jobs“ gespeicherten Prozessobjekte zuzugreifen, wird deutlich, dass diese Werte nicht direkt in ihren Attributen gespeichert sind.

Um diese Herausforderung zu meistern, gibt es einen anderen Ansatz erforderlich. Eine effektive Lösung beinhaltet die Verwendung einer gemeinsam genutzten Variablen, beispielsweise eines Wörterbuchs. Diese gemeinsam genutzte Variable ermöglicht die Kommunikation zwischen den untergeordneten Prozessen und dem Hauptprozess.

Im modifizierten Beispiel wird ein Manager erstellt, um den gemeinsamen Speicher zwischen Prozessen zu verwalten. Ein Wörterbuch, return_dict, wird initialisiert und als Argument an die Worker-Funktion übergeben. Innerhalb des Workers wird die Prozessnummer als Schlüssel und die Prozessnummer selbst als Wert zugewiesen.

Sobald alle Prozesse ihre Ausführung abgeschlossen haben, schließt sich der Hauptprozess den untergeordneten Prozessen an und greift dann auf das gemeinsame return_dict zu. Durch Iteration über seine Werte erhält man die gewünschten Rückgabewerte der untergeordneten Prozesse. Dieser Ansatz erfasst die Rückgabewerte effektiv durch Kommunikation zwischen Prozessen.

Das obige ist der detaillierte Inhalt vonWie kann ich Rückgabewerte von untergeordneten Prozessen im Multiprocessing abrufen?. 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