doraemon的python 生产者消费者模型

生产者消费者模型是做什么用的:把写在一起的大功能分开成多个小功能处理

形象来说就是启用两个进程:

  • 一个进程是生产者

  • 一个进程是消费者

  • 生产者与消费者之间的容器就是队列

import time
import random
from multiprocess import Process,Queue

def producer(q,name,food):
    for i in range(10):
        time.sleep(random.random())
        fd = '%s%s'%(food,i)
        q.put(fd)
        print('%s生产了一个%s'%(name,food))
        
def consumer(q,name):
    while True:
        food = q.get()
        if not food:break
        time.sleep(random.radom(1,3))
        print('%s吃了%s'%(name,food))
#注意:这时consumer函数不会结束

def cp(c_count,p_count)
    q = Queue(10)
    for i in range(c_count)
        Process(target=consumer,args=(q,'liujia')).start()
    P_l = []
    for i in range(p):
        p1 = Process(target=producer,args=(q,'liudanni','泔水'))
        p1.start()
        p_l.append(p1)
    for p in p_l:p.join()
    for i in range(c_count):
        q.put(None)
        
if __name__ == '__main__':
    cp(2,3)
    
原文地址:https://www.cnblogs.com/doraemon548542/p/11427314.html