Чем запускать параллельно CPU bound задачи в Python
Python
Senior
VK
Чем запускать параллельно CPU bound задачи в Python
Ответы
Для параллельного выполнения CPU-bound задач в Python лучше всего использовать модуль `multiprocessing`, так как он обходит ограничения GIL (Global Interpreter Lock), создавая отдельные процессы.
Пример:
```
from multiprocessing import Pool
def cpu_bound_task(x):
return x * x
if __name__ == '__main__':
with Pool(4) as p: # 4 процесса
results = p.map(cpu_bound_task, range(10))
print(results) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
```
Альтернативы:
- `concurrent.futures.ProcessPoolExecutor` – удобный интерфейс поверх `multiprocessing`.
- Библиотеки `joblib` или `dask` для сложных сценариев.
Не используйте `threading` для CPU-bound задач – из-за GIL он не даст прироста производительности.