Встречается на собеседованиях • сегодня
Какой тип конкурентность нужно использовать для быстрого выполнения CPU-bound задач
Для CPU-bound задач лучше всего использовать модуль multiprocessing, а не threading, так как он обходит ограничение GIL (Global Interpreter Lock) за счет создания отдельных процессов.
Пример:
python
from multiprocessing import Pool
def cpu_intensive_task(x):
return x * x
if name == 'main':
with Pool(4) as p: # Количество процессов = количеству ядер CPU
result = p.map(cpu_intensive_task, range(10))
print(result)
text
**Почему не threading?**
- GIL блокирует выполнение Python-кода в нескольких потоках одновременно.
- Процессы работают независимо, используя отдельные ядра CPU.
**Альтернативы:**
- `concurrent.futures.ProcessPoolExecutor` – удобная обертка над `multiprocessing`.
- Для сложных вычислений можно использовать `numba` или `Cython`.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы