os.fork()生成子进程的思路。
2018-05-16 本文已影响61人
北游_
因在循环中有 os.fork() 生成子进程,导致一系列疑问
代码:
import os
def main():
for i in range(0,4):
os.fork()
print('Hello fork')
if __name__ == '__main__':
main()
- 当循环 2 次时,会 print 6 次 'Hello fork' 2 => 2+4
- 当循环 3 次时,会 print 14 次 'Hello fork' 3 => 2+4+8
- 当循环 4 次时,会 print 30 次 'Hello fork' 4 => 2+4+8+16
- ……是有规律的
2次循环思路解析
当第一次循环 i=0 时,然后主进程 fork 生成一个子进程p1, 并且 print 一次。主循环 print 一次。
当第二次循环 i=1 时,然后主进程 fork 生成一个子进程p2, 并且 print 一次。子进程p1 fork 生成一个子进程,并且 print 一次。子进程 p1 会循环一次, 主循环会 print 一次。一共6次
![](https://img.haomeiwen.com/i11869978/c08313ceba192a63.png)