栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java并发编程实战读书笔记4--生产者消费者模式和队列

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java并发编程实战读书笔记4--生产者消费者模式和队列

1、BlockingQueue简化了生产者-消费者设计的实现过程,支持任意数量的生产者和消费者。常见的实现就是线程池与工作队列的组合,在Executor任务执行框架中就体现了这种模式。

2、在构建高可靠的应用程序时,有界队列是一种强大的资源管理工具:它能抑制并防止产生过多的工作项,使应用程序在负荷过载的情况下变得更加健壮。

3、生产者-消费者模式能够将生产者和消费者的代码彼此解耦,但是他们的行为仍然会通过共享工作队列耦合在一起。
4、linkedBlockingQueue和ArrayBlockingQueue是FIFO队列。所有的消费者有一个共享的工作队列。

5、SynchronousQueue并不是一个真正的队列。因为它不为队列中的元素维护存储空间。它真正维护的是一组线程。这些线程等待着元素的加入和删除。可以简单的理解为生产者生产的东西不经过队列,直接交付到消费者手里。降低了数据从生产者移动到消费者的延迟。就是因为没有存储功能,其put和get会抑制阻塞,直到有线程已经准备好参与到交付过程中。仅当有足够多的消费者,并且总有一个消费者准备好获取交付的工作时,才适合使用同步队列。

6、双端队列Deque适用于“工作密取”模式,在这种模式中,每个消费者都有自己的双端队列,如果自己的Deque为空时,那么它可以从其他消费者的Deque的末尾秘密低获取工作,从末尾获取任务而不是头部,主要是为了降低队列上的竞争程度,从而确保每个消费者都保持忙碌状态。在大多数时候,消费者(线程)只是访问自己的双端队列,从而极大的减少竞争。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/337706.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号