如何解决线程和叉
假设我们有这个代码:
main
some code...
fork()
fork()
some code
问题是: 有多少线程正在运行?
谢谢!
解决方法
感谢 Jeremy 的帮助,我找到了答案并想与您分享。
一般来说,如果我们有一个 fork(),就会创建一个孩子。除非我们为孩子有不同的代码,否则孩子会运行父母的代码(也就是 fork() 下的代码)。 所以在这个例子中,第一个 fork 将创建一个新进程,因为它将运行第二个 fork。
所以我们有 1 个线程供父线程使用。来自 fork1 的 child1 的 1 秒线程。由于 fork2,来自 child1 的第三个线程。最后是来自 child2 的线程。 所以总共有 4 个线程。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。