一.Producer-Consumer(生产者-消费者)模式,书在python33点(0M
1.几种角色理解
(1)Data:由Producer角色生成,供Consumer角色使用
(2)Producer(生产者):生成Data角色,并将其传递给Channer通道角色
(3)Consumer(消费者):从Channel角色获取Data角色并使用
(4)Channel(通道):Channel角色保管从Producer角色获取的,还会相应Consumer角色的请求,传递Data角色。为了保证安全性,Channel会对Producer和Consumer的访问执行互斥处理。
一些处理规则:
当Producer将Data传给Channel时,如果Channel状态不适合接收,则等待;
当Consumer从Channel获取Data时,如果Channel没有可传递的Data,则等待;
当存在多个Producer和Consumer时为了避免各处理相互影响,Channel应执行互斥处理
2.为什么不直接传递而是通过中间的Channel
为了避免Producer和Consumer之间直接调用,Producer角色将Data传递给Consumer,无需等待Consumer的处理又可以准备下一个Data角色,同理Consumer的消费也无需等待。他俩不会相互影响,提高了性能。