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

Почему на потоках не работают с CPU bound нагрузкой в Python

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

Для CPU-bound задач лучше использовать:

  1. Мультипроцессинг (библиотека multiprocessing)
  2. C-расширения (например, numpy или cython)
  3. Асинхронные решения (если задача допускает)

Пример с мультипроцессингом:

python
from multiprocessing import Pool

def heavy_computation(x):
    return x * x

if __name__ == '__main__':
    with Pool(4) as p:
        print(p.map(heavy_computation, range(10)))
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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