pgp*_*628 5 c++ multithreading boost pthreads boost-thread
哪个是c ++ boost线程库使用的线程模型?
1:1 (Kernel-level threading)
N:1 (User-level threading)
M:N (Hybrid threading)
这些模型之间的区别(来自wiki):http://en.wikipedia.org/wiki/Thread_ (computing)#Models
我检查了boost站点,并没有提到它使用的线程模型.
我猜这是一个1:1,因为它不提供像yield或的功能reschedule,但我不确定...
它是本机线程,即它将使用平台线程,至少在Linux、Windows和Mac中是这样。
据我所知,Windows、Linux 和 MAC 中每个生成的线程的线程映射将是 1:1。
我不确定对于其他平台是否可以通过其他方式实现,但我不知道 boost.thread API 是否有任何非内核线程实现。
对于用户级“线程”,具有协作多任务处理,可以使用 boost.coroutine。还有即将推出的 boost. Fiber 库,它几乎与 boost.coroutine 类似,但它添加了用户级“线程”(库术语中的 Fiber)API 和用户级 Fiber 调度程序。