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次

fork4次循环流程.png
上一篇 下一篇

猜你喜欢

热点阅读