c++20 里面会把 co_yield 转换成真正的调度代码啊。
转换成 c/asm 代码,co_yield 就是个 return 语句。也就是返回它的调用者。
而调用者用 co_await 切换到 generator 刚才退出的位置继续执行。
这就是最简单的纤程调度了啊。只有两个纤程,相互跳来跳去。
有了这个最简单的模型,再推广到更广泛的应用领域去。比如 c++20 的协程没说不能多线程。
【 在 ylh1969 的大作中提到: 】
: 还是没有解决异步IO的问题。
: 思考了一下,在C++协程里,co_yield没有出现context,不知道yield跑哪去了。
: 所以没办法调度。
: ...................
--
FROM 117.28.163.*