LinkedBlockingQueue使用介绍
来源:互联网 发布:零基础学算法 第三版 编辑:程序博客网 时间:2024/06/07 02:13
ava.util.concurrent包下的新类。LinkedBlockingQueue就是其中之一,顾名思义这是一个阻塞的线程安全的队列,底层应该采用链表实现。
看其API的时候发现,添加元素的方法竟然有三个:add,put,offer。
且这三个元素都是向队列尾部添加元素的意思。于是我产生了兴趣,要仔细探究一下他们之间的差别。
1.首先看一下add方法:
LinkedBlockingQueue构造的时候若没有指定大小,则默认大小为Integer.MAX_VALUE,当然也可以在构造函数的参数中指定大小。LinkedBlockingQueue不接受null。
add方法在添加元素的时候,若超出了度列的长度会直接抛出异常:
2.再来看一下put方法:
对于put方法,若向队尾添加元素的时候发现队列已经满了会发生阻塞一直等待空间,以加入元素。
3.最后看一下offer方法:
offer方法在添加元素时,如果发现队列已满无法添加的话,会直接返回false。
好了,竟然说了这么多了,就把从队列中取元素的方法也顺便一说。
从队列中取出并移除头元素的方法有:poll,remove,take。
poll: 若队列为空,返回null。
remove:若队列为空,抛出NoSuchElementException异常。
take:若队列为空,发生阻塞,等待有元素。
阅读全文
0 0
- LinkedBlockingQueue使用介绍
- LinkedBlockingQueue 的使用
- LinkedBlockingQueue的简单使用
- LinkedBlockingQueue
- LinkedBlockingQueue
- LinkedBlockingQueue
- LinkedBlockingQueue
- LinkedBlockingQueue
- LinkedBlockingQueue
- LinkedBlockingQueue
- LinkedBlockingQueue
- LinkedBlockingQueue
- LinkedBlockingQueue
- LinkedBlockingQueue
- LinkedBlockingQueue
- LinkedBlockingQueue
- LinkedBlockingQueue
- linkedblockingqueue
- codeblock找不到compile
- 【Cas】(一)cas实现SSO简单介绍
- UDT协议详细分析
- strlen函数
- Qt图像打印
- LinkedBlockingQueue使用介绍
- 使用AngularJS实现局部分页
- fuchsia
- Postman模拟SpringMVC 文件上传
- 关于半透明遮罩层弹框
- 杭电acm_step1.2.2
- 如何用CSS打造评论功能中的星级打分效果
- Python3学习笔记1-变量,数据类型
- sge集群搭建