Встречается на собеседованиях • сегодня
Асинхронный код исполняется в одном потоке или нет
Асинхронный код в Python (с использованием asyncio) выполняется в одном потоке, но может эффективно работать с множеством задач благодаря механизму event loop. Event loop переключается между корутинами (async/await), когда они ожидают I/O операций, создавая иллюзию параллелизма.
Однако, асинхронность ≠ многопоточность. GIL всё ещё действует, но так как код не блокирующий (ожидание I/O освобождает поток), это позволяет эффективно использовать один поток.
Пример:
python
import asyncio
async def task(num):
print(f"Start {num}")
await asyncio.sleep(1) # Неблокирующее ожидание
print(f"End {num}")
async def main():
await asyncio.gather(task(1), task(2)) # Выполняются "параллельно" в одном потоке
asyncio.run(main())
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы