Как реализована асинхронность в Pyhon до версии 3.6 (до появления async def)

Python Middle Т-Банк
Как реализована асинхронность в Pyhon до версии 3.6 (до появления async def)
Ответы
До Python 3.6 асинхронность реализовывалась через генераторы и декоратор `@asyncio.coroutine`. Вместо `async def` использовались обычные функции с декоратором, а вместо `await` — `yield from`. Пример: ``` import asyncio @asyncio.coroutine def old_style_coroutine(): print("Start") yield from asyncio.sleep(1) print("End") loop = asyncio.get_event_loop() loop.run_until_complete(old_style_coroutine()) ``` Ключевые моменты: - Декоратор `@asyncio.coroutine` помечал функцию как корутину - `yield from` использовался для ожидания других корутин - Работало на основе генераторов и event loop - Совместимо с новым синтаксисом (можно смешивать старый и новый стиль) Этот подход был менее читаемым и более подвержен ошибкам, чем современный синтаксис с `async/await`.