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