Встречается на собеседованиях • сегодня
Почему на потоках не работают с CPU bound нагрузкой в Python
В Python потоки неэффективны для CPU-bound задач из-за Global Interpreter Lock (GIL). GIL позволяет выполняться только одному потоку за раз, даже на многоядерных процессорах. Это означает, что параллельные вычисления невозможны — потоки просто переключаются между собой, создавая накладные расходы.
Для CPU-bound задач лучше использовать:
- Мультипроцессинг (библиотека
multiprocessing) - C-расширения (например,
numpyилиcython) - Асинхронные решения (если задача допускает)
Пример с мультипроцессингом:
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)))
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы