все Python 3multiprocessingфункция
multiprocessing.freeze_support()
способ запуска
Поддержка multiprocessing в программе, собранной в exe (PyInstaller, cx_Freeze). Вызывается первой строкой под if __name__ == '__main__'.
Синтаксис
multiprocessing.freeze_support()
Без неё замороженный exe при spawn (на Windows) запускает себя как ребёнка и снова выполняет main — вместо работы получается лавина процессов или RuntimeError. В обычном запуске через python, а также при fork и forkserver вызов ничего не делает, поэтому его безопасно оставлять всегда. Стоять он должен сразу после проверки __main__, до любого другого кода.
Примеры
import multiprocessing as mp
import sys
def job():
pass
if __name__ == '__main__':
mp.freeze_support()
print(getattr(sys, 'frozen', False)) # → False — не exe, вызов ничего не сделал
p = mp.get_context('spawn').Process(target=job)
p.start()
p.join()
print(p.exitcode) # → 0
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности