Встречается на 1% собеседований по Python
Какие знаешь способы распараллеливания задач в Python
В Python есть несколько способов распараллеливания:
- Threading (многопоточность) - подходит для I/O-bound задач. GIL ограничивает выполнение CPU-bound задач.
python
from threading import Thread
def task():
print("Working...")
threads = [Thread(target=task) for _ in range(5)]
for t in threads: t.start()
for t in threads: t.join()- Multiprocessing - для CPU-bound задач, создает отдельные процессы.
python
from multiprocessing import Process
def task():
print("Processing...")
processes = [Process(target=task) for _ in range(5)]
for p in processes: p.start()
for p in processes: p.join()- Asyncio - для асинхронного выполнения I/O-bound задач.
python
import asyncio
async def task():
print("Async working...")
async def main():
await asyncio.gather(*[task() for _ in range(5)])
asyncio.run(main())- Concurrent.futures - высокоуровневый интерфейс.
python
from concurrent.futures import ThreadPoolExecutor
with ThreadPoolExecutor() as executor:
executor.map(lambda x: x*2, range(5))- Celery - для распределенных задач (через брокеры сообщений).
Выбор зависит от типа задачи (CPU/I/O-bound) и требований к производительности.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы