Python Glossary English

все 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Сообщить о неточности