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

Насколько подходит многопоточность (multithreading) в Python для параллельных задач

В Python многопоточность (threading) подходит только для I/O-bound задач (сетевые запросы, чтение/запись файлов), где потоки могут работать параллельно во время ожидания.

Проблема GIL (Global Interpreter Lock) ограничивает выполнение Python-кода одним потоком в один момент времени, поэтому для CPU-bound задач (математические вычисления) лучше использовать multiprocessing или asyncio для I/O.

Пример для I/O-bound:

python
import threading
import requests

def fetch_url(url):
    response = requests.get(url)
    print(f"Fetched {url}, status: {response.status_code}")

urls = ["https://example.com", "https://google.com"]
threads = [threading.Thread(target=fetch_url, args=(url,)) for url in urls]

for t in threads:
    t.start()
for t in threads:
    t.join()

Итог:
✔ Подходит для I/O-bound (ожидание операций).
❌ Не подходит для CPU-bound (из-за GIL).
🔹 Альтернативы: multiprocessing (CPU), asyncio (I/O).

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

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

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

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