[英]std::threads are managed in user or kernel space?
正如我在标题中所写,我想知道c ++ stantard线程是在用户还是内核空间中进行管理。
谢谢。
几乎总是如此,标准并没有要求任何特定的实现,它只要求展示的行为符合其规则。
因此,具体实施可自由选择; 另一方面,可能很多实现都将基于boost.thread( std::thread
建议所基于的),所以我们可以看看它有一个想法。
该库在Win32上使用POSIX和Windows线程上的pthread。 Win32线程肯定是内核线程,但是pthreads 本身只是另一个接口 ,可以在用户空间和内核空间中实现(尽管几乎任何最近的UNIX内核都提供了在内核空间中实现它们的工具)。
所以: std::thread
可以是任何东西,但是,在“主流”PC操作系统/实现上,你很可能会获得内核线程。 如果由于某种原因您需要了解更多信息,请查看编译器的文档。
该接口是围绕pthread设计的 ,但是由libc ++的实现者来决定使用什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.