本文主要是介绍在python中实现生产者和消费者的例子(三):使用fork和pipe,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文介绍如何用os模块中的fork和pipe实现生产者和消费者的例子
import os
import timetotal=0
r,w=os.pipe()
pid0=os.getpid()
print '主进程',pid0
pid1=os.fork()
#为了证明os.fork()有两个返回值
#print '测试',pid1
#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' ,pid1,'子进程1',os.getpid()
else :
status1=os.waitpid(pid1,0)
pid2=os.fork()
a=0
if pid2 == 0:
print 'this is child02' ,pid2,'子进程2',os.getpid()
os.close(r)
fw=os.fdopen(w,'w')
for i in range(100):
a=a+1
fw.write(str(a))
print a,' 01'
fw.close()
else :
#status2=os.waitpid(pid2,0)print 'this is parent00','主进程',os.getpid(),' its child01',pid1,' its child02',pid2
os.close(w)
fr=os.fdopen(r,'r')
print fr.read(),' 02'
fr.close()
这篇关于在python中实现生产者和消费者的例子(三):使用fork和pipe的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!