码迷,mamicode.com
首页 > 系统相关 > 详细

【day33】多进程之进程间通信

时间:2017-08-25 21:03:09      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:使用   定义   put   问题   log   str   ble   消失   nbsp   

技术分享

生产者消费者模型出现的问题及解决办法:

1、生产者进程与消费者进程通信完成后,程序卡在消费者进程

  原因:生产者进程与消费者进程的通信用的是Queue队列,消费者进程通过get()方法获取生产者put()在Queue上的消息。而Queue上的消息被get()完之后,消费者进程仍在等待get()新消息,所以进程一直卡在这里。

  解决办法:使用JoinableQueue队列,消费者进程get()到消息后,利用task_done()方法返回一条消息给生产者进程确认,当生产者发送消息完毕后,消费者将返回与生产者消息数相同的确认消息,生产者端再使用.join()方法关闭进程。

 

2、程序运行完之后,子程序仍然存在。

  原因:子程序运行之后,并没有被删除,会占用内存。

  解决办法:用deamon守护程序删除。deamon守护程序会使子程序随父程序的死亡而消失。定义方法:子程序.daemon。

 

【day33】多进程之进程间通信

标签:使用   定义   put   问题   log   str   ble   消失   nbsp   

原文地址:http://www.cnblogs.com/weiyumangmang/p/7429060.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!