【问题标题】:Clarifying a Q&A about multithreading澄清关于多线程的问答
【发布时间】:2014-11-20 09:17:02
【问题描述】:

在学习多线程时,我遇到了this 问答。

问题很明确。但我不明白为什么答案是这样的。其实我不明白是进程在并发运行还是父进程在等待子进程终止。

请为我解释一下。

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

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

【问题讨论】:

    标签: multithreading


    【解决方案1】:

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

    澄清:由于父子都调用thread_create,在最后一个fork的每个进程中,因此多了2个线程。

    在最后一次分叉之后,我们复制了最后一个进程。

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

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

    【讨论】:

      猜你喜欢
      • 2015-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多