c - 线程和叉子
问题描述
假设我们有以下代码:
main
some code...
fork()
fork()
some code
问题是:有多少线程正在运行?
谢谢 !
解决方案
感谢 Jeremy 的帮助,我找到了答案并想与您分享。
一般来说,如果我们有一个 fork() ,就会创建一个孩子。除非我们对孩子有不同的代码,否则孩子会运行父母的代码(也就是 fork() 下的代码)。所以在这个例子中,第一个 fork 将创建一个新进程,因为它将运行第二个 fork。
所以我们有1个父线程。来自 fork1 的 child1 的 1 秒线程。由于 fork2,来自 child1 的 1 个第三个线程。最后是来自 child2 的线程。所以总共有4个线程。
推荐阅读
- javascript - 跨多个属性在数组中查找对象
- c++ - wxWidgets - `wxTimer` 每秒更新一个函数
- python-3.x - 如何将具有无值的熊猫数据框中的行添加到某些列
- javascript - 将 eval 与上下文绑定
- python - 如何从工程图图像中自动裁剪出图表?
- visual-studio - 在 VS 2015 中创建 nuget 包,包选项卡不可用
- javascript - 子集合的firestore查询错误:rest.collection不是函数
- angular - 如何将 $localize 动态分配给从环境文件导入的文本?
- javascript - 使用数组方法进行数据集转换
- arrays - 告诉 excel 查看上一个单元格到当前 I 数组