・ Windodws10 ・ Python 3.8.3 ・ PyInstaller 3.6
Wenn ich mit PyInstaller eine Exe-Datei erstelle und darauf klicke, werden durch die parallele Verarbeitung, die bei der Ausführung über die Konsole nicht erfolgt, viele Exe-Prozesse gestartet und der PC friert ein. Verzweiflung
Benötigt freeze_support ()
Python-Parallelverarbeitungsbeispiel, das den PC einfriert, wenn es mit einer exe-Datei ausgeführt wird
Parallelverarbeitungsprobe
from multiprocessing import Pool
#####In diesem Fall eine Funktion, die das Quadrat des Arguments zurückgibt###
def nijou(x):
print( x*x )
######Berechnen wir parallel#########
if __name__ == "__main__":
p = Pool(4)
p.map( nijou, range(10) )
Diese Funktion muss unmittelbar danach aufgerufen werden, wenn name == '__ main__' im Hauptmodul Wenn keine Zeile freeze_support () vorhanden ist, wird RuntimeError angezeigt, wenn versucht wird, eine eingefrorene ausführbare Datei auszuführen Wird passieren Das Aufrufen von freeze_support () hat keine Auswirkungen auf Nicht-Windows-Betriebssysteme. Außerdem hat freeze_support () keine Auswirkung, wenn das Modul von einem normalen Windows Python-Interpreter ausgeführt wird (es sei denn, das Programm ist eingefroren).
Referenz hier - Multiprocessing-Prozess-basierte Parallelverarbeitung
Friert nicht ein, selbst wenn es mit exe ausgeführt wird
from multiprocessing import Pool,freeze_support
#freeze_Unterstützung hinzufügen
#####In diesem Fall eine Funktion, die das Quadrat des Arguments zurückgibt###
def nijou(x):
print( x*x )
######Berechnen wir parallel#########
if __name__ == "__main__":
freeze_support() #Hinzugefügt
p = Pool(4)
p.map( nijou, range(10) )