【问题标题】:Does fork() duplicate only the calling thread or all threads?fork() 是只复制调用线程还是复制所有线程?
【发布时间】:2018-05-08 20:36:26
【问题描述】:
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

int main()
{
    int i = 0;
    fork();
    for(;i<3; ++i)
        printf("%d", i);
    fork();
    return 0;
}

这是我的代码。我想知道执行最后一个fork()后有多少进程

【问题讨论】:

  • “线程”和进程在这里可能不应该互换使用。另外,请将您的代码发布为文本,而不是图片。

标签: process operating-system fork


【解决方案1】:

fork 将当前进程分成 2 个进程,因此在第一个 fork 之后有 2 个,在第二个之后有 4 个。

编辑:在第一个 fork() 之后会有两个进程,都执行以下语句。初始进程和分叉进程都将第二次调用 fork(),在调用之后总共产生 4 个进程。欲了解更多信息,请查看此链接:http://www.csl.mtu.edu/cs4411.ck/www/NOTES/process/fork/create.html

【讨论】:

  • 第一次fork()之后会有两个进程,都执行下面的语句。初始进程和分叉进程都将第二次调用 fork(),在调用之后总共产生 4 个进程。 csl.mtu.edu/cs4411.ck/www/NOTES/process/fork/create.html
  • 重点在这里。不知道答案是三还是四
  • 完成!好电话。
猜你喜欢
  • 2020-07-27
  • 2012-06-05
  • 1970-01-01
  • 2012-08-08
  • 1970-01-01
  • 2014-08-08
  • 1970-01-01
  • 2020-04-29
  • 2018-06-17
相关资源
最近更新 更多