Какие инструменты применял для многопроцессорности (multiprocessing)
Python
Middle
Без компании
Какие инструменты применял для многопроцессорности (multiprocessing)
Ответы
В Python для многопроцессорности чаще всего используется модуль `multiprocessing`. Основные инструменты:
- **`Process`** — базовый класс для создания процессов:
```
from multiprocessing import Process
def worker():
print("Process running")
p = Process(target=worker)
p.start()
p.join()
```
- **`Pool`** — пул процессов для параллельного выполнения задач:
```
from multiprocessing import Pool
def square(x):
return x * x
with Pool(4) as p:
print(p.map(square, range(10)))
```
- **`Queue`** и **`Pipe`** — для межпроцессного взаимодействия:
```
from multiprocessing import Process, Queue
def worker(q):
q.put("Hello from child")
q = Queue()
p = Process(target=worker, args=(q,))
p.start()
print(q.get())
p.join()
```
- **`Manager`** — для разделяемых объектов (списки, словари):
```
from multiprocessing import Manager, Process
def modify_list(l):
l.append(42)
with Manager() as manager:
shared_list = manager.list()
p = Process(target=modify_list, args=(shared_list,))
p.start()
p.join()
print(shared_list)
```
Также можно использовать `multiprocessing.Value` и `multiprocessing.Array` для разделяемой памяти.