Встречается на собеседованиях • сегодня

Какие знаешь способы распараллеливания задач в Python

В Python есть несколько способов распараллеливания:

  1. 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()
  1. 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()
  1. 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())
  1. Concurrent.futures - высокоуровневый интерфейс.
python
from concurrent.futures import ThreadPoolExecutor

with ThreadPoolExecutor() as executor:
    executor.map(lambda x: x*2, range(5))
  1. Celery - для распределенных задач (через брокеры сообщений).

Выбор зависит от типа задачи (CPU/I/O-bound) и требований к производительности.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы