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

Для каких задач не подходит многопоточность

Многопоточность неэффективна в Python для CPU-задач из-за GIL (Global Interpreter Lock), который ограничивает выполнение кода одним потоком в один момент времени. Лучше использовать многопроцессорность (multiprocessing) или асинхронность (asyncio).

Пример CPU-задачи (вычисление чисел Фибоначчи):

python
def fib(n):
    if n <= 1:
        return n
    return fib(n-1) + fib(n-2)

# Многопоточность не ускорит это
from threading import Thread
t1 = Thread(target=fib, args=(35,))
t2 = Thread(target=fib, args=(35,))
t1.start(); t2.start()  # Будет выполняться последовательно из-за GIL

Также не подходит:

  1. Для задач с интенсивным IO, где лучше asyncio
  2. Когда нужна настоящая параллельность (лучше multiprocessing)
  3. Для простых задач, где накладные расходы на потоки превысят выгоду
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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