Корутины в C++20: как работают и пример применения
Краткое резюме
В C++20 появились корутины, позволяющие разработчикам писать асинхронный код аналогично синхронному. Корутины не создают дополнительных потоков, а представляют собой синтаксический сахар, который компилятор заменяет вызовом нескольких функций.
В последней версии языка программирования С++ 20 появились корутины. Они дают возможность разработчикам писать асинхронный код так же, как они пишут синхронный. При этом асинхронность не обязательно связана с использованием нескольких потоков — асинхронным может быть код, выполняющийся в одном потоке.
С точки зрения компилятора корутины представляют собой лишь синтаксический сахар. Это означает, что они не создают дополнительных потоков, а компилятор просто заменяет корутины вызовом нескольких функций.
В этой статье будет представлен пример создания простого таймера на основе корутин, а также описаны классы Awaitable и Promise, которые необходимы для их работы.