在我研究多线程时,我遇到了this问题和答案。
问题很清楚。但我不明白为什么答案就是这样。实际上我不明白进程是并发运行还是父进程正在等待子进程终止。
请为我解释一下。
到目前为止我的想法:
第一次分叉后,我们有两个进程和两个线程
在第二个分支后,我们有另一个进程(和另一个线程)
在thread_create之后我们有一个额外的线程
在最后一个fork之后,我们将最后一个进程重复。所以我们有另外两个线程和另一个进程。
结果:我们有4个进程和6个线程。
答案 0 :(得分:0)
在thread_create之后,我们有一个额外的线程。
澄清:在最后一个fork的每个进程中,因为父和子都调用了thread_create,因此有2个额外的线程。
在最后一个fork之后,我们将最后一个进程重复。
不,这里将每个先前存在的进程(3)分成两半。
最后我们有6个进程,每个进程由各自的线程表示,另外还有2个额外的线程。