Встречается на собеседованиях • сегодня
В чем разница между вытесняющей и конкурентной многозадачность
Вытесняющая многозадачность (preemptive) — это когда операционная система сама решает, когда переключать контекст между потоками/процессами. Например, в Python потоки (threading) используют вытесняющую модель — ОС может прервать выполнение потока в любой момент.
Конкурентная многозадачность (cooperative) — это когда переключение между задачами контролирует сам код. Например, корутины в asyncio работают именно так — они должны явно отдавать управление (await), иначе другие задачи не выполнятся.
Пример с asyncio:
python
import asyncio
async def task1():
print("Task 1 started")
await asyncio.sleep(1) # Явно отдаем управление
print("Task 1 finished")
async def task2():
print("Task 2 started")
await asyncio.sleep(0.5)
print("Task 2 finished")
asyncio.run(asyncio.gather(task1(), task2()))Ключевые различия:
- Вытесняющая: переключение управляется ОС, может быть в любой момент
- Конкурентная: переключение происходит только в точках явного ожидания
- В Python threading — вытесняющая, asyncio — конкурентная

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