Ich habe den folgenden Code.
%Vor%Es erzeugt den folgenden Fehler.
%Vor%Der Inhalt von functionA ist unwichtig und erzeugt keinen Fehler. Der Fehler scheint zu auftreten, wenn ich versuche, Funktion B zuzuordnen. Wie entferne ich diesen Fehler und was ist der beste Weg, um diesen Code in Python 2.6 zu parallelisieren?
Der Grund, aus dem Sie dieses Verhalten am wahrscheinlichsten sehen, liegt in der Reihenfolge, in der Sie Ihren Pool, Objekte und Funktionen definieren. multiprocessing
ist nicht ganz dasselbe wie die Verwendung von Threads. Jeder Prozess erstellt und lädt eine Kopie der Umgebung. Wenn Sie Funktionen in Bereichen erstellen, die für die Prozesse möglicherweise nicht verfügbar sind, oder wenn Sie Objekte vor dem Pool erstellen, schlägt der Pool fehl.
Versuchen Sie zuerst, einen Pool vor Ihrer großen Schleife zu erstellen:
%Vor%Bewegen Sie dann Ihr Callable außerhalb der dynamischen Schleife:
%Vor%Betrachten Sie dieses Beispiel ...
gebrochen
%Vor%funktioniert
%Vor%Tags und Links python pickle multiprocessing