前言
C++协程一直是大家比较关注的一个技术点, 在C++20 coroutine属性正式推出之前, 就已经有很多项目实装了, 实现机制也略也差异, 下面先来简单看下比较常见的实现方式:
1.1 基于...实现
C++20的coroutine特性也慢慢被大家熟知, c++20使用的也是stackless的coroutine实现, 对比stackful的模式, C++20的stackless实现泛用性会更好一点...外围包装调度器, 实现子协程, 各种针对业务特化的特性, 如sleep, rpc request等, 另外也有集中的地方对当前系统的所有协程做集中的管理和调度....Scheduler实现
4.1 Scheduler实现的动机
一些复杂的机制, 如子协程的创建和等待, 依赖外围系统的Sleep机制, 异步Rpc机制等, 肯定不适合直接在最底层的stackless...大部分情况本地变量的使用编译器会直接报错, 如 for(int i = 0; ...)