os.fork()生成子进程的思路。

因在循环中有 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次

11869978-c08313ceba192a63.png
fork4次循环流程.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值