TGViewer
C++ and other lectures C++ and other lectures @cpp_lects_rus · 9.94K subscribers
Post #372 10.2K
Выложил вторую лекцию по корутинам на английском языке.

https://youtu.be/huitkyM1UQE

Во второй лекции мы переходим от базовой механики co_await и promise_type к более сложным и практическим аспектам программирования с использованием корутин в C++20/23. Сначала мы обсудим симметричные корутины, различные варианты await_suspend и то, как корутины могут напрямую передавать управление друг другу. Затем, на примере корутинной реализации конечных автоматов, разберём, как с помощью awaiters можно строить довольно сложные модели выполнения. Важной частью лекции является обсуждение взаимодействия корутин с потоками на примере многопоточной подписки на события. Мы разберём, почему встроенные (stackless) корутины могут продолжать выполнение на другом потоке, как устроен фрейм корутины и почему это создаёт сложности для оптимизаций в компиляторах. Также мы рассмотрим корутины как основу для композиции асинхронных вычислений и увидим, как корутины позволяют писать существенно более читаемый асинхронный код по сравнению с callback-based подходами. В завершение разберём внутреннее устройство корутин в компиляторах: фреймы корутин, порождаемые конечные автоматы и даже генерируемый ассемблер.

00:00 Введение. Вспоминаем пройденное.
04:38 Обобщаем awaitable transformations: что, кроме перегрузки co_await, нам доступно?
13:09 Изобретаем симметричные корутины в C++: await_suspend и его механика.
18:42 Case study: конечные автоматы на корутинах.
31:00 Монадические свойства co_await.
37:55 Сочетание корутин с потоками. Многопоточная подписка на события и её сюрпризы.
48:00 Корутинный интерфейс для std::future.
52:05 Корутины как механизм композиции асинхронных задач.
56:18 Внутреннее устройство корутин и их реализация в компиляторах.
01:02:04 Обзор литературы и завершение.

#cpp_postgraduate
  • 🔥 30
  • 👍 21
  • ❤ 7
More from @cpp_lects_rus
  1. Sep 22, 2026В четверг вечером провожу встречу со студентами и преподавателями ВШЭ. В планах: короткий…
  2. Sep 19, 2026Многие люди, прошедшие мой базовый курс языка C спрашивали -- а что дальше. Ведь мир языка…
  3. Sep 12, 2026Участвую в Ghost in the Code, рассылке YADRO о работе с легаси на C++. Удивительно ламповы…
  4. Sep 10, 2026Выложили доклад моего аспиранта и коллеги Владислава Белова @sick_hoof по алиасингу памяти…
  5. Sep 5, 2026Мне начали кидать в личку всякие странные видео из бентосных интернетов, появляющиеся (сей…
  6. Sep 3, 2026Выложили доклад моего студента и коллеги Саши Романова про рефлексию в C++. С моей точки з…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →