Встречается на собеседованиях • сегодня
Как происходит переключение контекста
Переключение контекста в 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
интервью вопросы и ответы