文档目录

C++20 Coroutines 协程

目标:理解 C++20 无栈协程的底层模型,能写出协程代码。

  • 3.1 协程的底层模型

    • co_return、co_yield、co_await 三个关键字的作用域。
    • promise_type 与 awaiter 的接口契约(await_ready、await_suspend、await_resume)。
    • 协程帧(coroutine frame)的堆分配与生命周期。
  • 3.2 实践:generator<T>(协程实现惰性生成器)

    • 用 co_yield 实现按需生成序列。
    • 对比传统全量生成的内存优势。
  • 3.3 实践:task<T>(协程实现异步任务)

    • 用 co_await 等待异步操作完成。
    • task<T> 的 promise_type 完整实现。
  • 3.4 协程与 io_uring / epoll 的结合

    • 基于协程的 TCP echo server 框架。
    • 协程对比传统回调式异步代码的可读性提升。