Встречается на 1% собеседований по Python
Как происходит переключение контекста
Переключение контекста в Python происходит при выполнении операций ввода-вывода, системных вызовов или при явном вызове await. Оно позволяет освободить поток для других задач, пока текущая ожидает завершения операции.
Пример с asyncio:
python
import asyncio
async def task1():
print("Task 1 started")
await asyncio.sleep(1) # Переключение контекста
print("Task 1 completed")
async def task2():
print("Task 2 started")
await asyncio.sleep(2) # Переключение контекста
print("Task 2 completed")
async def main():
await asyncio.gather(task1(), task2())
asyncio.run(main())
text
При `await asyncio.sleep()` управление передаётся обратно в event loop, который может запустить другую корутину. Это не блокирующая операция, в отличие от `time.sleep()`.
В многопоточности переключение контекста управляется GIL и ОС, но из-за GIL Python не выполняет настоящий параллелизм потоков на CPU-bound задачах.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы