首页 > 其他 > 详细

Queue(队列)接口

时间:2020-07-20 22:27:25      阅读:77      评论:0      收藏:0      [点我收藏+]

Queue(队列)接口

表示Collection的子接口,表示队列FIFO(First In First Out)先进先出

常用方法:

? 抛出异常:

? boolean add(E e) - 顺序添加一个元素(到达上限后,再添加则会抛出异常 )

? E remove() - 获得第一个元素并移除(如果队列没有元素时,则抛出异常)

? E element() - 获得第一个元素但不移除(如果队列没有元素时,则抛出异常)

? 返回特殊值:推荐使用

? boolean offer(E e) - 顺序添加一个元素(到达上限后,再添加则会返回false)

? E pool() - 获得第一个元素并移除(如果队列没有元素时,则返回null)

? E peek() - 获得第一个元素但不移除(如果队列没有元素时,则返回null)

ConcurrentLinkedQueue

线程安全、可高效读写的队列,高并发下性能最好的队列。

无锁、CAS比较交换算法,修改的方法包含三个核心参数(V,E,N)

? V:要更新的变量、 E:预期值、 N:新值

Queue<String> queue = new ConcurrentLinkedQueue<String>();
queue.offer("Hello");	//插入
queue.offer("World");	//插入
queue.poll();	//删除Hello
queue.peek();	//获得World

BlockingQueue接口(阻塞队列)

Queue的子接口,阻塞队列,增加了两个线程状态为无限期等待的方法。

方法:

void put(E e) - 将指定元素插入此队列中,如果没有可用空间,则等待

E take() - 获取并移除此队列头部元素,如果没有可用元素,则等待。

ArrayBlockingQueue:

数组结构实现,有界队列

没写完,抽空给补上

Queue(队列)接口

原文:https://www.cnblogs.com/MonkeySun/p/13347193.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!