前言
在前文中我们介绍过了在C++17中怎么利用Duff Device特性Hack出一个无栈协程实现, 并基于这个无栈协程实现了一个任务调度器, 具体可参见 中实现stackless...而yield时候的返回值, 和resume时的传入值, 就变成了我们与一个既定协程交换数据的手段了(配图)...., 这部分比较简单, 这里不再详细叙述了.
2.1 c++20 coroutine理解的难点
C++20 coroutine大致的概览图如下:
从上图可以看出c++ coroutine20实现的几个特点...首先是业务侧, 在创建完协程后, 需要给协程绑定后续协程执行完成后做进一步操作需要的数据:
task->SetReturnFunction([this, server, entity, cmdHead,...4.3 小结
通过上面的例子我们可以看到协程化实现相关功能的好处:
不会形成大量的对象抽象, 基于过程本身实现主体功能即可。
更容易写出数据驱动向的实现。