使用python的os.fork()为一个主进程生成多个子进程

这篇博客介绍了如何使用Python的os.fork()函数为主进程生成多个子进程,并涉及到了进程间的通信与等待。通过示例代码展示了如何创建管道(pipe)进行数据传递,以及如何通过os.getpid()和os.getppid()获取进程ID。最终实现了一个主进程生成两个子进程,子进程向管道写入数据,主进程读取并计算总和。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先熟悉一下基础:

语句pid=os.fork(),会为当前进程产生一个子进程并返回两个值,为父进程返回子进程的进程ID,为子进程返回0。

语句r,w=os.pipe(),将创建一个读写的单向管道,用于多进程通信。

语句os.getpid和os.getppid,分别返回当前进程的ID和其父进程的ID。


对于初学者(包括本人),经常连续使用os.fork()语句,这样会为前面使用os.fork()产生的子进程也生成子进程。

下面将给出一个只为一个主进程生成多个子进程的方法(本文选择为主进程生成两个子进程),并将进程间等待与通信融入其中。


import os

total=0

r1,w1=os.pipe()  
r2,w2=os.pipe()

pid0=os.getpid()
print '主进程',pid0

pid1=os.fork()

'''
print '测试',pid1               #为了演示os.fork()有两个返回值

#下面为了演示os.getpid()值不是固定的 其显示当前进程ID

if pid1==0:
    print '子进程 ',pid1,os.getpid(),os.getppid()
else:
    print '主进程 ',pid1,os.getpid(),os.getppid()
'''

if pid1  == 0:
    print 'this is child01' ,'子进程1',os.getpid()
   
    os.close(r1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值