Python-Multiprocessing-Manager-Listenfehler: [Errno 2] Keine solche Datei oder kein Verzeichnis

8

Ich habe ein Multiprocessing-Programm in Python geschrieben. Ich verwende multiprocessing.Manager().list() , um die Liste im Subprozess zu teilen. Zuerst füge ich einige Aufgaben im Hauptprozess hinzu. Starten Sie dann einige Unterprozesse, um Aufgaben auszuführen, die in der gemeinsam genutzten Liste den Unterprozessen ebenfalls Aufgaben zur freigegebenen Liste hinzufügen. Aber ich habe eine Ausnahme wie folgt:

%Vor%

Ich finde etwas über die Verwendung der geteilten Liste in Python-Multiprocessing wie dies . Aber immer noch eine Ausnahme. Ich habe keine Ahnung von der Bedeutung der Ausnahme. Und was ist der Unterschied zwischen der allgemeinen Liste und der manager.list?

der Code wie folgt:

%Vor%     
stamaimer 17.04.2015, 14:34
quelle

1 Antwort

14

Das Problem ist, dass Ihr Hauptprozess sofort beendet wird, nachdem Sie alle Ihre Worker-Prozesse gestartet haben, wodurch Ihr Manager beendet wird. Wenn Ihr Manager beendet wird, kann keines der Kinder die freigegebene Liste verwenden, die Sie an sie übergeben haben. Sie können es beheben, indem Sie join verwenden, um auf das Beenden aller untergeordneten Elemente zu warten. Stellen Sie nur sicher, dass Sie tatsächlich start alle Ihre Prozesse vor dem Aufruf von join :

%Vor%     
dano 17.04.2015, 15:11
quelle

Tags und Links