操作系统概念第4章习题4.10解析
1、题目描述:考虑下面代码段
- 创建了多少个单独的进程
- 创建了多少个单独的线程
pid_t pid;
pid = fork();
if (pid == 0) {
fork();
thread_create(. . .);
}
fork();
2、解析
如上篇文章所述,遇到fork()
系统调用创建进程我们可以画进程树图来帮助分析
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/64d91a1b0859494ff87eae01875dd3d5.png)
如图,每行代码的引线代表该代码在当前进程执行后进程数图的变化结果。其中蓝色节点代表创建了新的进程,红色节点代表创建了新的线程。
3、结论
从图中可以看到,该代码段:
- 创建了6个单独的进程
- 创建了2个单独的线程