Встречается на собеседованиях • сегодня
Какие знаешь способы распараллеливания задач в 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
интервью вопросы и ответы