文档目录
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 框架。
- 协程对比传统回调式异步代码的可读性提升。