本文主要是介绍在python中实现生产者和消费者的例子(二):使用multiprocessing和queue,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文介绍如何用multiprocessing模块及Queue实现生产者和消费者的例子
import multiprocessing
import timeimport random
class producer(multiprocessing.Process):
def __init__(self,no,queue):
multiprocessing.Process.__init__(self)
self.no=no
self.queue=queue
def run(self):
while True:
time.sleep(random.randint(1,3))
qn=self.queue.qsize()
if qn<self.queue.full:
self.queue.put('consumer')
print 'No %d producer-- %d' %(self.no,self.queue.qsize())
else:
pass
#time.sleep(random.randint(1,3))
class consumer(multiprocessing.Process):
def __init__(self,no,queue):
multiprocessing.Process.__init__(self)
self.no=no
self.queue=queue
def run(self):
while True:
time.sleep(random.randint(1,3))
sg=self.queue.get()
if sg != None:
print 'No %d %s-- %d' %(self.no,sg,self.queue.qsize() )
else:
pass
#time.sleep(random.randint(1,3))
def center():
queue = multiprocessing.Queue(100)
p=[]
p.append(producer(1,queue))
p.append(consumer(4,queue))
p.append(producer(2,queue))
p.append(consumer(5,queue))
p.append(producer(3,queue))
p.append(consumer(6,queue))
for i in range(6):
p[i].start()
for i in range(6):
p[i].join()
if __name__=='__main__':
center()
这篇关于在python中实现生产者和消费者的例子(二):使用multiprocessing和queue的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!