前言
C++协程一直是大家比较关注的一个技术点, 在C++20 coroutine属性正式推出之前, 就已经有很多项目实装了, 实现机制也略也差异, 下面先来简单看下比较常见的实现方式:
1.1 基于...当然, 这种通过hack方式达成的机制一般来说会多多少少带来一些使用上的限制, 框架目前的实现是分成两步来弱化限制, 让整个机制的使用更方便的:
借助C++新特性, 既然case label实现的无栈协程无法保存栈变量...外围包装调度器, 实现子协程, 各种针对业务特化的特性, 如sleep, rpc request等, 另外也有集中的地方对当前系统的所有协程做集中的管理和调度....Scheduler实现
4.1 Scheduler实现的动机
一些复杂的机制, 如子协程的创建和等待, 依赖外围系统的Sleep机制, 异步Rpc机制等, 肯定不适合直接在最底层的stackless...大部分情况本地变量的使用编译器会直接报错, 如 for(int i = 0; ...)