Встречается на собеседованиях • сегодня
Почему многопоточность в 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 медленнее, чем последовательно
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы