c++ boost线程库使用的线程模型是什么?
1:1(内核级线程)
N:1(用户级线程)
M:N(混合线程)
这些模型之间的区别(来自 wiki):http://en.wikipedia.org/wiki/Thread_(computing)#Models
我检查了 boost 站点,它没有提到它使用的线程模型。
我猜是 1:1,因为它没有提供 yield
或 reschedule
之类的功能,但我不确定...
最佳答案
它是 native 线程,即它会使用平台线程,至少在 Linux、Windows 和 Mac 中是这样。
据我所知,对于每个生成的线程,线程映射将与 Windows、Linux 和 MAC 中的内核线程成 1:1 比例。
我不确定对于其他平台是否可以用其他方式实现它,但我不知道有任何非内核线程实现使用 boost.thread API。
对于用户级的“线程”,协同多任务处理,可以使用 boost.coroutine。还有即将推出的 boost.fiber 库,它几乎类似于 boost.coroutine,但它添加了一个用户级“线程”(在库术语中是纤程)API 和一个用户级纤程调度程序。
关于c++ - boost线程库的型号是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25540532/