Встречается на собеседованиях • сегодня

Как затрачивается CPU в асинхронности

В асинхронном Python (asyncio) CPU используется эффективнее, чем в синхронном коде, за счёт кооперативной многозадачности. Поток выполнения освобождается при await, позволяя обрабатывать другие задачи во время ожидания I/O.

Ключевые моменты:

  • CPU не блокируется на I/O операциях (сеть, файлы и т.д.)
  • Один поток может обрабатывать тысячи соединений
  • Нет накладных расходов на переключение потоков (как в threading)

Пример:

python
import asyncio

async def task(name, delay):
    print(f"{name} started")
    await asyncio.sleep(delay)  # Освобождает CPU на время ожидания
    print(f"{name} finished")

async def main():
    await asyncio.gather(
        task("A", 2),
        task("B", 1),
    )

asyncio.run(main())

Вывод:

text
A started
B started
B finished (через 1 сек)
A finished (через 2 сек)

Нюансы:

  • CPU-bound задачи (например, вычисления) блокируют event loop — для них нужен отдельный поток/процесс.
  • Неправильное использование await может привести к простою CPU.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы