Выбор ответа Junior asyncio спрашивают часто обновлено
Сколько потоков использует asyncio
Вопрос
Как выполняются задачи asyncio по умолчанию?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: В одном потоке, переключение в точках await. Цикл событий работает в одном потоке и переключает задачи кооперативно, только когда текущая задача дошла до await на неготовой операции.
Варианты ответа
- Каждая задача в своём потоке ОС из пула цикла
- Каждая задача в своём процессе, как в multiprocessing
- В одном потоке, переключение в точках
awaitправильный ответ - Параллельно на всех ядрах благодаря отключению GIL
Разбор
Цикл событий работает в одном потоке и переключает задачи кооперативно, только когда текущая задача дошла до await на неготовой операции. Поэтому asyncio хорош для ожидания I/O, но не ускоряет вычисления. Потоки и процессы используются лишь явно (to_thread, run_in_executor), и GIL asyncio не отключает.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.