每次调用fork()函数之后,父线程和创建出的子线程都是从fork()后开始执行
2016-04-04 18:21
453 查看
Linux下多少个"-"将被打印:
i=0时,主进程和其创建的子进程分别打印'-', 打印2个
i=1时,之前两个进程打印'-', 每个进程又创建新的子进程, 共打印4个'-'
i=2时,之前的四个进程分别打印'-', 并创建新的子进程, 故共打印8个'-'
i=3时,之前的8个进程分别打印'-', 并创建新的子进程,故共打印16个'-'
综上所述, 共打印2+4+8+16=30个
每次调用fork()函数之后,父线程和创建出的子线程都是从fork()后开始执行,意味着父线程和子线程将分别执行一次printf。
所以 1次 fork()调用
对应着 2次printf()调用
对应着 创建1个子线程
i = 4时,一共创建了2^4-1个子线程,也就是有15次fork()调用, 所以调用了30次printf
https://www.nowcoder.com/questionTerminal/9b52b1a86ae64daab81f609f3a86c02f
i=1时,之前两个进程打印'-', 每个进程又创建新的子进程, 共打印4个'-'
i=2时,之前的四个进程分别打印'-', 并创建新的子进程, 故共打印8个'-'
i=3时,之前的8个进程分别打印'-', 并创建新的子进程,故共打印16个'-'
综上所述, 共打印2+4+8+16=30个
每次调用fork()函数之后,父线程和创建出的子线程都是从fork()后开始执行,意味着父线程和子线程将分别执行一次printf。
所以 1次 fork()调用
对应着 2次printf()调用
对应着 创建1个子线程
i = 4时,一共创建了2^4-1个子线程,也就是有15次fork()调用, 所以调用了30次printf
https://www.nowcoder.com/questionTerminal/9b52b1a86ae64daab81f609f3a86c02f
相关文章推荐
- 《深入理解计算机系统》第七章读书笔记
- 简单爬取CSDN下载资源信息
- EditText中过滤掉回车等
- Spring Data与MongoDB:不协调的设计
- Codeforces Round #339 (Div. 2) D .Skills 偷师一波前缀和的运用
- 『C++ Primer学习笔记』Chapter 3——string对象、vector对象以及数组的不同处理方法
- Leetcode232. Implement Queue using Stacks[栈实现队列]
- 继承的使用
- Spring+SpringMVC+Hibernate+JPA+SpringData+Ehcache+C3p0+MySQL项目搭建
- could not initialize proxy - no Session
- 面试题15 链表中倒数第k个结点
- C语言字符串操作总结大全(超详细)
- 蛇形矩阵 Java实现
- 获取程序中两个地方执行的时间
- ios--uitextfield动态限制输入的字数(解决方式)
- struts2笔记06-ServletXxxAware接口
- POJ 2531(状态压缩||DFS)
- 计数器的实现
- sqlmap使用笔记
- 亲子游