Windows RuntimeError Using Multiprocessing
Dieser Fehler tritt auf, wenn versucht wird, Python-Multiprocessing-Prozesse unter Windows zu starten, ohne die richtige Initialisierungssprache zu verwenden.
In der Frage versucht ein Python-Programm, Threads und Prozesse von einem separaten Modul aus zu starten, stößt jedoch auf einen RuntimeError. Die Ursache liegt darin, dass Windows-Unterprozesse bei der Initialisierung implizit das Hauptmodul importieren. Ohne den richtigen Schutz führt dies zur rekursiven Erstellung von Unterprozessen.
Lösung:
Um den Fehler zu beheben, muss ein if hinzugefügt werden name == '__main__' Schutz im Hauptmodul, um mehrere Prozessinstanzen zu verhindern.
Geändertes Hauptmodul (testMain.py):
if __name__ == '__main__': import parallelTestModule extractor = parallelTestModule.ParallelExtractor() extractor.runInParallel(numProcesses=2, numThreads=4)
In dieser modifizierten Version prüft das Hauptmodul explizit, ob es sich um den Hauptprozess handelt, bevor es den parallelen Code ausführt. Dies stellt sicher, dass die Unterprozesse nicht rekursiv erstellt werden und vermeidet den RuntimeErorr.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich einen RuntimeError, wenn ich Multiprocessing unter Windows verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!