все Python 3multiprocessingпонятие
multiprocessing
модуль
Параллельные вычисления в нескольких процессах: обход GIL для счётных задач, пулы, очереди и общая память.
Синтаксис
import multiprocessing
Берите multiprocessing для счётных задач, которые упираются в процессор: потоки threading делят один GIL, а процессы — нет. Для простого «раздать работу пулу» удобнее concurrent.futures.ProcessPoolExecutor. Запуск обязателен под if __name__ == '__main__': в режиме spawn (умолчание Windows и macOS) и forkserver (умолчание Linux с 3.14) дочерний процесс заново импортирует главный модуль. Передаваемые функции и данные должны сериализоваться pickle — lambda не подойдёт.
Примеры
from multiprocessing import Pool
def square(x):
return x * x
if __name__ == '__main__':
with Pool(2) as pool:
print(pool.map(square, [1, 2, 3])) # → [1, 4, 9]
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности