在书籍《Linux系统编程第二版》中,关于协程和纤程的区别解释如下: 协程和纤程提供了比线程更轻量级的执行单元(前者是它们作为编程语言结构时的名称,后者是它们作为系统结构时的名称)。 我有一些协程(语言结构)的例子,但无法找到纤程的例子。 能否有人提供一些纤程的例子(作为系统结构)?
你可以看一下C++库boost.coroutine2和boost.fiber,它们都使用了来自boost.context的相同上下文切换机制(callcc()/continuation)。简而言之,协程和纤程的区别在于,纤程之间的上下文切换由调度器(选择下一个纤程...)管理。而协程没有调度器的概念。有关协程和纤程之间区别更详细的解释,请参见N4024: Distinguishing coroutines and fibers。