多线程(6):Java多线程设计模式《图解Java多线程设计模式》观后感

以下是读者阅读《图解Java多线程设计模式》.[日].结城浩 后觉得用得比较多的几种Java多线程设计模式精简总结

一.Producer-Consumer(生产者-消费者)模式

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的消费也无需等待。他俩不会相互影响,提高了性能

 

....待更新

 

 

### 若对你有帮助的话,欢迎点赞!评论!转发!谢谢!

上一篇:并发容器

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值