设为首页 加入收藏

TOP

第三十一天- 进程串行(锁) 队列 生成者消费者模型(三)
2018-11-29 22:08:40 】 浏览:236
Tags:第三十一 进程 串行 队列 生成 消费者 模型
):
16 for i in range(10): 17 # time.sleep(random.randint(1,3)) 18 time.sleep(random.random()) 19 res='%s%s' %(name,i) 20 q.put(res) 21 print('\033[44m%s 生产了 %s\033[0m' %(os.getpid(),res)) 22 print('%s生产结束'%name) 23 q.join() # 生产完毕,使用此方法进行阻塞,直到队列中所有项目均被处理。 24 print('%s生产结束~~~~~~'%name) 25 26 27 if __name__ == '__main__': 28 q=JoinableQueue() 29 # 生产者们:即厨师们 30 p1=Process(target=producer,args=('包子',q)) 31 p2=Process(target=producer,args=('骨头',q)) 32 p3=Process(target=producer,args=('泔水',q)) 33 34 # 消费者们:即吃货们 35 c1=Process(target=consumer,args=(q,)) 36 c2=Process(target=consumer,args=(q,)) 37 c1.daemon=True 38 c2.daemon=True 39 # 如果不加守护,那么主进程结束不了,但是加了守护之后,必须确保生产者的内容生产完并且被处理完了,所有必须还要在主进程给生产者设置join,才能确保生产者生产的任务被执行完了,并且能够确保守护进程在所有任务执行完成之后才随着主进程的结束而结束。 40 41 # 开始 42 p_l=[p1,p2,p3,c1,c2] 43 for p in p_l: 44 p.start() 45 46 p1.join() # 我要确保你的生产者进程结束了,生产者进程的结束标志着你生产的所有的人任务都已经被处理完了 47 p2.join() 48 p3.join() 49 print('主程序') 稍复杂示例参考

 

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇第三天-零基础学习python 下一篇第三十二天- 管道 进程池

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目