Что такое вытесняющая многозадачность
Python
Middle
Без компании
Что такое вытесняющая многозадачность
Ответы
Вытесняющая (preemptive) многозадачность — это подход, при котором операционная система сама решает, когда переключаться между задачами, принудительно забирая процессорное время у текущей задачи. В отличие от кооперативной многозадачности, где задачи сами передают управление, здесь переключение контролируется планировщиком ОС.
Пример в Python с потоками (threading), где ОС управляет переключением:
```
import threading
import time
def task(name):
for i in range(3):
print(f"{name} выполняется")
time.sleep(1)
thread1 = threading.Thread(target=task, args=("Поток 1",))
thread2 = threading.Thread(target=task, args=("Поток 2",))
thread1.start()
thread2.start()
thread1.join()
thread2.join()
```
Ключевые особенности:
- Планировщик ОС решает, когда переключать потоки
- Не требует явного освобождения управления (как `yield` в кооперативной)
- Потоки могут прерываться в любой точке выполнения
- Позволяет эффективно использовать CPU при I/O-bound задачах