【发布时间】:2012-05-10 10:50:28
【问题描述】:
我想知道关于 Unix(特别是 Linux)上的 C++ 多线程的“幕后”会发生什么——尤其是操作系统和信号量等的参与。
我已经执行了初始的谷歌搜索,但它没有抛出。
有人可以描述或指出一个可以提供帮助的好资源吗?
编辑:当我在 C++ 中创建线程时,操作系统会创建/存储哪些“对象”来管理该线程以及所涉及的任何相关开销?
已经意识到这更像是一个 Linux 问题而不是 C++ 问题。
【问题讨论】:
-
了解 NPTL - en.wikipedia.org/wiki/Native_POSIX_Thread_Library。非 Linux 实现会与此不同。
-
Linux 使用
clone()系统调用来创建可调度的执行上下文。它们用于生成进程(通过fork())和线程(通过pthreads)。 -
如果你问
clone()系统调用是如何实现的,看here。
标签: c++ linux multithreading unix c++11