码迷,mamicode.com
首页 > 编程语言 > 详细

python小知识点的总结

时间:2017-08-03 16:50:21      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:互斥锁   span   缓冲区   线程同步   多线程同步   模型   完全   案例   知识点   

生产者-消费者模型

是多线程同步的经典案例。

此模型中生产者向缓冲区 push 数据,消
费者从缓冲区中 pull 数据。
这个 Demo 中缓冲区用 python 实现的 Queue 来做, 这个模块是线程安全的使开发者不
用再为队列增加额外的互斥锁.
信号处理的实现是这样的:
1)主线程接到一个 SIGTERM 的信号后先通知 Consumer 停止向缓冲区 push 数据并退

2)Produer 将缓冲区中的数据消费完全后在退出
3)主线程退出
生产者消费者模型的优点
1、解耦
假设生产者和消费者分别是两个类。 如果让生产者直接调用消费者的某个方法, 那么生产
者对于消费者就会产生依赖(也就是耦合)。将来如果消费者的代码发生变化, 可能会
影响到生产者。而如果两者都依赖于某个缓冲区,两者之间不直接依赖,耦合也就相应降
低了。
2、支持并发
由于生产者与消费者是两个独立的并发体, 他们之间是用缓冲区作为桥梁连接, 生产者只
需要往缓冲区里丢数据, 就可以继续生产下一个数据, 而消费者只需要从缓冲区了拿数据
即可,这样就不会因为彼此的处理速度而发生阻塞。
3、支持忙闲不均
如果制造数据的速度时快时慢,缓冲区的好处就体现出来了。当数据制造快的时候,消费
者来不及处理,未处理的数据可以暂时存在缓冲区中。 等生产者的制造速度慢下来,消
费者再慢慢处理掉。

python小知识点的总结

标签:互斥锁   span   缓冲区   线程同步   多线程同步   模型   完全   案例   知识点   

原文地址:http://www.cnblogs.com/yezefei/p/7280214.html

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