【发布时间】:2015-07-14 07:40:27
【问题描述】:
在Pthreads中,当我们在主函数内部创建多个线程时,是否所有创建的线程都成为主线程的工作线程?或者每个线程本身就是一个管理器线程?
【问题讨论】:
-
我不确定你所说的 C 上下文中的工作线程是什么意思。你能详细说明一下吗?
-
所有线程几乎相等。唯一的区别是,如果您退出(从)主线程,它将终止进程(所有其他线程都被终止)。除此之外,线程是您在线程中使用代码创建的。
-
如果你创建一个线程,就会创建一个线程。它是什么“种类”的线程,取决于它在做什么。如果它确实“工作”,它就是一个工作线程。如果它响应网络消息,它就是一个网络响应线程。像“工作线程”这样的名称并没有区别,它在不同的上下文中意味着不同的东西。
-
那么当我在 main 中创建 3 个线程时,总共会运行 4 个线程?我创建的 3 个线程 + 主线程?
-
@SuryaNarayanan 是的。唯一明显的区别是“主”线程是由操作系统进程加载程序创建的,而不是由您的代码显式创建的。