Подтемы
Asyncio — отмена задач (Cancellation)
25 вопр.
Asyncio — корутины (Coroutines)
18 вопр.
Asyncio — Event Loop (событийный цикл)
18 вопр.
Asyncio — паттерны (Patterns)
19 вопр.
asyncio — Практика (race, блокировки, async I/O)
22 вопр.
Asyncio — примитивы синхронизации (Lock/Semaphore/Event)
21 вопр.
Asyncio — Tasks / TaskGroup (задачи и группы задач)
19 вопр.
62 вопросов
-
junior theory Что такое event loop в asyncio и как он работает на пальцах?
-
middle theory Чем отличаются `asyncio.create_task`, `asyncio.gather` и `asyncio.TaskGroup`? Что использовать в 2026?
-
senior theory Как обнаружить и устранить блокирующие операции в async-приложении?
-
senior theory Что такое slow callback в asyncio, как его отлавливать и почему он опасен?
-
junior theory Объясните, что такое корутины в asyncio и как они отличаются от обычных функций. Приведите пример простой корутины.
-
junior theory Какой минимальный набор кода необходим для запуска первой асинхронной программы на asyncio? Опишите шаги.
-
junior theory Как работает await в asyncio? Что происходит, когда вы пишете await some_coroutine()?
-
junior theory Какие ошибки могут возникнуть при использовании asyncio и как их обрабатывать? Приведите пример.
-
middle theory Каким образом можно ограничить количество одновременно выполняемых асинхронных задач в `asyncio` без использования `asyncio.Semaphore`? Приведите пример кода и…
-
middle theory Какой из следующих вызовов может привести к утечке ресурсов в асинхронном коде: `asyncio.create_task()` без `await`, `asyncio.run()` внутри `async def`, или `a…
-
middle theory Почему использование `asyncio.to_thread()` предпочтительнее, чем `loop.run_in_executor()` для запуска синхронного кода в отдельном потоке? Приведите пример сце…
-
senior theory Как asyncio обрабатывает блокирующие операции в асинхронных приложениях? Опишите стратегии минимизации их влияния на производительность и приведите пример кода…
-
senior theory Объясните, как asyncio реализует взаимодействие между корутинами и потоками/процессами. Какие ограничения и антипаттерны стоит избегать при комбинировании asyn…
-
senior theory Как asyncio обеспечивает fault tolerance в распределённых системах с использованием задач (tasks)? Опишите механизм обработки ошибок в цепочках await и стратег…
-
middle theory Представьте, что у вас есть 10 корутин, которые пишут в общий список данных. Как вы будете обеспечивать безопасность доступа к этому списку, чтобы избежать rac…
-
middle theory Как вы обнаружите, что в вашем async-приложении есть блокирующие операции (например, синхронные вызовы `time.sleep` вместо `asyncio.sleep`)? Какие инструменты …
-
middle theory Как вы реализуете ограничение количества одновременных запросов (`max_concurrent`) и ограничение скорости (`per_second`) в асинхронном приложении? Приведите пр…
-
senior theory Реализуйте асинхронный таймер, который запускает задачу с задержкой, но также позволяет отменить её. Объясните, как вы будете использовать `asyncio.create_task…
-
senior theory Как вы будете обеспечивать безопасность доступа к общему ресурсу (например, счётчику) в нескольких асинхронных корутинах без использования `asyncio.Lock`? Объя…
-
senior theory Представьте, что вы пишете асинхронный HTTP-клиент, который должен обрабатывать 1000 запросов параллельно, но с ограничением на 100 активных соединений. Как вы…
-
middle theory Объясните, как event loop в asyncio обрабатывает корутины и как это влияет на производительность приложения. Приведите пример сценария, где неправильное исполь…
-
middle theory Какие основные реализации event loop существуют в asyncio? В чём их отличие по производительности и как выбор влияет на масштабируемость приложения?
-
middle theory Как event loop обрабатывает задачи с разными приоритетами? Какие механизмы позволяют управлять порядком выполнения корутин в asyncio?
-
middle theory Объясните, как корутины в asyncio обрабатывают блокирующие операции (например, синхронные вызовы к БД или файловой системе). Какие механизмы использует asyncio…
-
middle theory Какие различия между `await` и `async/await` в контексте корутин? Почему важно использовать `async def` при определении корутин?
-
middle theory Как корутины в asyncio обрабатывают состояние (например, переменные, которые должны сохраняться между вызовами)? Какие проблемы могут возникнуть при неправильн…
-
middle theory Объясните, как отличаются поведение asyncio.create_task() и использование async with TaskGroup() при управлении множеством асинхронных задач. В чём преимуществ…
-
middle theory Как TaskGroup обрабатывает исключения, возникающие в асинхронных функциях, запущенных внутри неё? Приведите пример кода, демонстрирующий поведение в случае нес…
-
middle theory Почему в некоторых сценариях предпочтительнее использовать asyncio.gather() вместо TaskGroup? Приведите пример, где это логично, и объясните, как это влияет на…
-
middle theory Объясните, как в asyncio корректно обрабатывать отмену задачи (task cancellation), и почему важно не игнорировать исключение asyncio.CancelledError. Приведите …
-
middle theory Как asyncio обрабатывает отмену задач, которые находятся в состоянии ожидания (например, при вызове await)? Какие нюансы нужно учитывать при работе с вложенным…
-
middle theory Какие возможные проблемы могут возникнуть при попытке отменить задачу asyncio из другого потока? Как это можно безопасно реализовать?
-
middle theory Объясните, в чём разница между `asyncio.Lock` и `asyncio.Semaphore`, и приведите примеры использования каждого. Какой из них лучше подходит для ограничения кол…
-
middle theory Как работает `asyncio.Event`? В чём его отличие от `asyncio.Condition`? Приведите пример использования `Event` для координации между корутинами.
-
middle theory Какие антипаттерны или ошибки могут возникнуть при неправильном использовании `asyncio.Lock` или `asyncio.Semaphore`? Приведите примеры и объясните, как их избежать.
-
middle theory Объясните, как реализовать паттерн 'fan out / fan in' в asyncio. Какие особенности нужно учитывать при сборе результатов от параллельных задач?
-
middle theory Какой паттерн в asyncio позволяет ограничить количество параллельных задач? Какие негативные последствия могут возникнуть при отсутствии такого ограничения?
-
middle theory Какой паттерн в asyncio позволяет реализовать 'сопрограммы как потоки'? Какие преимущества и ограничения у этого подхода по сравнению с threading?
-
middle theory Как можно обработать отмену в корутине, которая выполняет долгую операцию (например, ожидание ответа от внешнего сервиса)? Какие подходы позволяют избежать 'за…
-
middle theory Как реализовать паттерн 'асинхронный HTTP-сервер с обработкой множества клиентов' в asyncio? Какие аспекты нужно учитывать при масштабировании?
-
middle theory Какие типичные проблемы могут возникнуть при использовании asyncio в приложениях с длительными синхронными операциями (например, ожидание ответа от внешнего AP…
-
middle theory Представьте, что вы пишете библиотеку, которая использует TaskGroup для управления внутренними асинхронными операциями. Как вы будете тестировать корректность …
-
middle theory Какие trade-offs возникают при использовании `asyncio.wait()` с таймаутами для обработки отмены по сравнению с явным обработкой `CancelledError` в корутине? В …
-
middle theory Какие trade-offs возникают при использовании `asyncio.Semaphore` для ограничения количества параллельных операций в высоконагруженных системах? Как это влияет …
-
middle theory Как реализовать паттерн 'асинхронного лимитера' (rate limiter) в asyncio для ограничения количества запросов к внешнему API? Какие альтернативы существуют для …
-
senior theory Чем отличается uvloop от штатного `asyncio.SelectorEventLoop` на уровне реализации? Какие системные вызовы используют epoll/kqueue, сколько стоит регистрация f…
-
senior theory Когда нужно писать кастомную `EventLoopPolicy`? Приведи 2-3 production-кейса, покажи скелет реализации и расскажи про подводные камни с child watchers и signal…
-
senior theory В каких случаях `asyncio.shield` действительно нужен и где это антипаттерн? Покажи 2 реальных use-case (DB commit, in-flight payment) и расскажи как ведёт себя…
-
senior theory Как корректно реализовать паттерн «отмени задачу, но дождись её cleanup (finally)»? Сравни vanilla asyncio с anyio cancel scopes. Что такое «uncancel» в Python…
-
senior theory Спроектируй producer/consumer pipeline на `asyncio.Queue` с backpressure: producer читает из Kafka 50k msg/s, consumer пишет в Postgres 5k qps. Как настроить m…
-
senior theory Спроектируй supervised fan-out/fan-in: 1 запрос → 100 параллельных вызовов к downstream API → агрегация. Как ограничить concurrency, ретраить отдельные ошибки,…
-
senior theory Почему `asyncio.Lock` НЕ обеспечивает взаимное исключение между процессами и потоками? Покажи как это сломается на проде и какие альтернативы для cross-process…
-
senior theory Сравни `asyncio.TaskGroup` (3.11+) с `asyncio.gather(return_exceptions=True)`. В каких сценариях TaskGroup провоцирует баги? Что такое ExceptionGroup и как его…
-
senior theory Что такое supervised task pattern? Реализуй супервизор, который перезапускает упавший background-таск с exponential backoff, не больше N раз за окно T. Какие л…
-
middle theory Какие механизмы в `asyncio` позволяют обрабатывать 'spikes' (пиковые нагрузки) в количестве одновременных подключений без потери производительности? Какие trad…
-
middle theory Как можно использовать `asyncio.TaskGroup` для реализации паттерна 'wait for any' (ожидание завершения первой из нескольких задач), и какие ограничения у этого…
-
middle theory Какие сложности возникают при отмене задач, если корутина использует `async for` для итерации по асинхронному итерируемому объекту (например, `asyncio.Queue` и…
-
middle theory Какие альтернативы `asyncio.create_task()` можно использовать для создания задач, которые должны быть устойчивы к отмене (например, для фоновых операций, котор…
-
middle theory Как можно использовать `asyncio.Event` и `asyncio.Lock` совместно для реализации паттерна 'producer-consumer' с обратной связью (backpressure)? Какие потенциал…
-
senior theory Как asyncio обеспечивает изоляцию между корутинами при использовании `async def`? Какие проблемы могут возникнуть, если корутина изменяет глобальные переменные…
-
senior theory Какие ограничения и trade-offs возникают при использовании `asyncio` для реализации долгоживущих корутин (например, фоновых задач, которые должны работать в те…
-
senior theory Как asyncio обеспечивает порядок выполнения корутин, если они запущены через `asyncio.create_task()` и `await asyncio.gather()`? Какие альтернативы существуют …