先熟悉一下基础:
语句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