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

Почему многопоточность в Python неэффективна для выполнения ресурсоемких (CPU-зависимых) задач

В Python существует GIL (Global Interpreter Lock) — глобальная блокировка интерпретатора, которая позволяет выполняться только одному потоку за раз, даже на многоядерных процессорах. Это делает многопоточность неэффективной для CPU-зависимых задач, так как потоки не могут выполняться параллельно.

Для CPU-зависимых задач лучше использовать модуль multiprocessing, который создает отдельные процессы с собственным GIL, или асинхронность (asyncio) для I/O-зависимых операций.

Пример:

python
import threading
import time

def cpu_task():
    sum(range(10**7))  # CPU-intensive

# Многопоточность (неэффективно)
start = time.time()
threads = [threading.Thread(target=cpu_task) for _ in range(4)]
for t in threads: t.start()
for t in threads: t.join()
print(f"Threading: {time.time() - start:.2f}s")  # ~4x медленнее, чем последовательно
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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