Как работает многопроцессность в Python
Python
Middle
Rutube
Как работает многопроцессность в Python
Ответы
В Python многопроцессорность реализуется через модуль `multiprocessing`, который создает отдельные процессы с собственным интерпретатором и памятью. Это обходит GIL (Global Interpreter Lock), позволяя использовать несколько ядер CPU.
Пример:
```
from multiprocessing import Process
def worker(num):
print(f'Процесс {num} запущен')
if __name__ == '__main__':
processes = []
for i in range(3):
p = Process(target=worker, args=(i,))
processes.append(p)
p.start()
for p in processes:
p.join()
```
Ключевые особенности:
- Каждый процесс имеет собственное пространство памяти
- Обмен данными между процессами требует специальных механизмов (Queue, Pipe, shared memory)
- Создание процессов дороже, чем потоков
- Идеально подходит для CPU-задач, но не для I/O-bound задач
Для управления процессами часто используют `Pool`:
```
from multiprocessing import Pool
def square(x):
return x * x
with Pool(4) as p:
print(p.map(square, [1, 2, 3, 4]))
```