Встречается на 1% собеседований по Python
Как решается CPU bound задача
Для решения CPU-bound задач в Python можно использовать несколько подходов:
- Многопроцессорность (multiprocessing) - создание отдельных процессов для параллельного выполнения:
python
from multiprocessing import Pool
def cpu_intensive_task(x):
return x * x
if __name__ == '__main__':
with Pool(4) as p:
results = p.map(cpu_intensive_task, range(10))- Cython - компиляция Python-кода в C для ускорения:
python
# Файл cython_module.pyx
def cython_func(int n):
cdef int result = 0
for i in range(n):
result += i * i
return result- Numba - JIT-компиляция с использованием декораторов:
python
from numba import jit
@jit(nopython=True)
def numba_func(n):
result = 0
for i in range(n):
result += i * i
return resultКлючевые моменты:
- GIL в Python мешает эффективному использованию потоков для CPU-bound задач
- Процессы имеют отдельные области памяти и GIL для каждого
- Для математических операций эффективны специализированные библиотеки (NumPy, Numba)
- В сложных случаях стоит рассмотреть вынос CPU-bound частей в C/C++ расширения

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы