Python Glossary English

Python 3.4+multiprocessingфункция

multiprocessing.set_start_method()

способ запуска

Задаёт глобальный способ запуска дочерних процессов: 'spawn', 'fork' или 'forkserver'. Вызывается не больше одного раза, под if __name__ == '__main__'.

Синтаксис

multiprocessing.set_start_method(method, force=False)

Повторный вызов — RuntimeError «context has already been set», даже если способ «зафиксировал» не вы, а get_start_method() или создание Queue. force=True перезаписывает, но это признак того, что глобальная настройка не годится: в библиотеке и в коде, который могут импортировать, берите get_context('spawn'). Вызов вне защиты __main__ при spawn выполнится и в каждом ребёнке — снова с RuntimeError.

Примеры

import multiprocessing as mp
if __name__ == '__main__':
    mp.set_start_method('spawn')
    print(mp.get_start_method())  # → spawn
    try:
        mp.set_start_method('spawn')
    except RuntimeError as e:
        print(e)  # → context has already been set
    mp.set_start_method('spawn', force=True)
    print('forced')  # → forced

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности