你可以看看 boost.coroutine2 和 boost.fiber (C ++库) - 两者都使用相同的上下文切换机制( callcc()/延续 )来自 boost.context 。
简而言之 - 协同程序和光纤之间的区别在于,光纤之间的上下文切换由调度程序管理(选择下一根光纤......)。协同程序没有调度程序的概念。
可以阅读协程和光纤之间差异的更详细解释 N4024:区分协程和纤维 。