Встречается на собеседованиях • сегодня
Как решается 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
интервью вопросы и ответы