Встречается на 1% собеседований по Python
За счет чего происходит переключение в asyncio
Asyncio использует механизм событийного цикла (event loop) для переключения между корутинами. Когда корутина достигает точки ожидания (await), управление возвращается в event loop, который решает, какую следующую корутину запустить. Это позволяет эффективно использовать ресурсы, избегая блокировок.
Ключевые моменты:
- Awaitable объекты (корутины, задачи, футуры) приостанавливают выполнение корутины
- Event loop управляет очередью готовых к выполнению задач
- Неблокирующие вызовы (например, I/O операции) регистрируют callback в event loop
Пример:
python
import asyncio
async def task1():
print("Start task1")
await asyncio.sleep(1) # Передача управления обратно в event loop
print("End task1")
async def task2():
print("Start task2")
await asyncio.sleep(0.5)
print("End task2")
async def main():
await asyncio.gather(task1(), task2())
asyncio.run(main())
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы