在书中Linux System Programming, 2nd Edition
,协程和 Fiber 的区别解释如下:
协程和纤程提供了比线程更轻的执行单元(当它们是编程语言构造时,前者是它们的名称,而当它们是系统构造时是后者)。
我有一些 Coroutines(语言结构)的例子,但找不到 Fibers 的例子。
谁能给我一些Fiber(系统构造)的例子?
您可以查看boost.coroutine2和boost.fiber (C++ 库)——它们都使用来自boost.context的相同上下文切换机制(callcc()/continuation)。
简而言之 - 协程和纤程之间的区别在于,纤程之间的上下文切换由调度程序管理(选择下一个纤程......)。协程没有调度器的概念。
可以在N4024:区分协程和纤程中阅读有关协程和纤程之间差异的更详细说明。