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