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

Какой тип конкурентность нужно использовать для быстрого выполнения 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`.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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