Модуль multiprocessing обеспечивает истинный параллелизм в Python путём создания отдельных процессов ОС, каждый со своим интерпретатором Python и Global Interpreter Lock (GIL). Это обходит ограничение GIL, которое не даёт стандартному threading'у быть по-настоящему параллельным, а не просто конкурентным.
threading, каждый процесс выполняется независимо, задействуя несколько ядер CPUfrom multiprocessing import Process
def task():
print("Running in separate process")
p = Process(target=task)
p.start()
p.join()
Поскольку процессы имеют изолированные адресные пространства, Python предоставляет несколько механизмов для обмена данными:
Value или ArrayPool для эффективного управления несколькими воркерамиjoin(), чтобы убедиться, что дочерние процессы завершились до завершения основного процессаМодуль multiprocessing достигает истинного параллелизма, создавая отдельные OS процессы, каждый с собственным интерпретатором Python и GIL, что позволяет нескольким ядрам процессора выполнять код одновременно.
Новый — ещё не проверен сообществом
Вы