澄清关于多线程的Q& A

时间:2014-11-20 09:17:03

标签: multithreading

在我研究多线程时,我遇到了this问题和答案。

问题很清楚。但我不明白为什么答案就是这样。实际上我不明白进程是并发运行还是父进程正在等待子进程终止。

请为我解释一下。

到目前为止我的想法: 第一次分叉后,我们有两个进程和两个线程 在第二个分支后,我们有另一个进程(和另一个线程)
在thread_create之后我们有一个额外的线程 在最后一个fork之后,我们将最后一个进程重复。所以我们有另外两个线程和另一个进程。

结果:我们有4个进程和6个线程。

1 个答案:

答案 0 :(得分:0)

  

在thread_create之后,我们有一个额外的线程。

澄清:在最后一个fork的每个进程中,因为父和子都调用了thread_create,因此有2个额外的线程。

  

在最后一个fork之后,我们将最后一个进程重复。

不,这里将每个先前存在的进程(3)分成两半。

最后我们有6个进程,每个进程由各自的线程表示,另外还有2个额外的线程。