non-blocking io.

Асинхронность в Python для senior interview: от asyncio до выбора правильной реализации под задачу

Каждый Python-разработчик знает базовую формулу: asyncio нужен для I/O, потоки ну тоже иногда, процессы — для CPU-bound. На собеседовании такого ответа хватает ровно до первого уточняющего вопроса.А потом начинаются уже интересные вещи.Почему await не делает код параллельным?Почему асинхронный код всё равно может полностью положить event loop?Чем Task отличается от Future не на уровне "одно ждёт другое", а на уровне устройства рантайма?Что именно делает цикл событий, когда вы пишете await asyncio.sleep(1)?Почему в одном месте нужен create_task, в другом — TaskGroup

продолжить чтение

Rambler's Top100