Выбор ответа Junior asyncio спрашивают часто обновлено

Сколько потоков использует asyncio

Вопрос

Как выполняются задачи asyncio по умолчанию?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: В одном потоке, переключение в точках await. Цикл событий работает в одном потоке и переключает задачи кооперативно, только когда текущая задача дошла до await на неготовой операции.

Варианты ответа

  1. Каждая задача в своём потоке ОС из пула цикла
  2. Каждая задача в своём процессе, как в multiprocessing
  3. В одном потоке, переключение в точках awaitправильный ответ
  4. Параллельно на всех ядрах благодаря отключению GIL

Разбор

Цикл событий работает в одном потоке и переключает задачи кооперативно, только когда текущая задача дошла до await на неготовой операции. Поэтому asyncio хорош для ожидания I/O, но не ускоряет вычисления. Потоки и процессы используются лишь явно (to_thread, run_in_executor), и GIL asyncio не отключает.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.