您现在的位置是:课程教程文章
BlockingQueue在java中的使用
2023-12-15 21:12课程教程文章 人已围观
-
任小龙Java零基础入门精编版(上)
任小龙Java零基础入门精编版(上)课程介绍: 本课程为小龙老师重新录制的Java基础课程421课时精编版本。从基础... -
《硬核程序基础》JAVA
《硬核程序基础》JAVA《算法很美》——Java前置课 课程疑问解答、课后讨论请加客服小蓝 QQ:257975... -
JavaScript基础入门视频教程【案例+源代码
JavaScript基础入门视频教程【案例+源代码JavaScript是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,... -
Web前端开发高级工程师JavaScript/ES6/Ajax/j
Web前端开发高级工程师JavaScript/ES6/Ajax/j...
我们已经对线程池中的队列有所了解,那么其中还有一种阻塞队列的类型。可以获取和添加一些元素,当队列已经满了时,就会发挥它的阻塞作用,等队列空了再让新元素进入。下面我们就BlockingQueue的概念、使用场景、子类及它的实现分别带来介绍,看看都有哪些内容吧。
1.概念
是一个先进先出的队列(Queue),为什么说是阻塞(Blocking)的呢?是因为 BlockingQueue 支持当获取队列元素但是队列为空时,会阻塞等待队列中有元素再返回;也支持添加元素时,如果队列已满,那么等到队列可以放入新元素时再放入。
2.使用场景
(1抛出异常;
(2)返回特殊值(null 或 true/false,取决于具体的操作);
(3)阻塞等待此操作,直到这个操作成功;
(4)阻塞等待此操作,直到成功或者超时指定时间。
3.实现的子类
ArrayBlockingQueue 数组型阻塞队列
LinkedBlockingQueue 链表型阻塞队列
DelayQueue 延时队列
SynchronousQueue 同步队列
PriorityBlockingQueue 优先阻塞队列
4.BlockingQueue实现
假设创建了一个阻塞队列(BlockingQueue)bq
生产者:循环调用bq.put(value)添加数据
消费者:循环调用bq.take()读取数据。
以上就是BlockingQueue在java中的使用,相信大家已经初步掌握阻塞队列的使用概念。在接下来的内容中,我们会进一步分析其子类的用法,可以持续关注一下。
课程教程:BlockingQueue在java中的使用下一篇:没有了