一个比较特殊的情况, 游戏GamePlay相关的业务使用这种模式, 由于本身的复杂度和需求迭代的诉求, 比较容易出现stack size(内存占用)和性能难以平衡的问题.
1.2 基于switch case..., 通过对应的case label, 可以在重入一个函数的时候跳转到不同的label, 从而实现协程的挂起和恢复, 提供最原始的协程机制支撑....coroutine compiler做的那部分工作(主要是提取stack变量转为heap变量存储和使用.)...coroutine上直接实现, 目前框架采用的方式是在外围再包装一层Scheduler, 来完成一些复杂功能和业务强相关功能的封装和实现, 这样底层的stackless coroutine侧重基础机制的实现..., 外围的Scheduler侧重复杂逻辑的实现和控制, 从机制和实现上来说都会相对清晰.
4.2 Scheduler核心机制
如上图所示, Scheduler主要提供对SchedTask的管理,