标签:增加 方法 指定元素 实现 无锁 线程状态 交换 阻塞队列 blocking
表示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)
线程安全、可高效读写的队列,高并发下性能最好的队列。
无锁、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
Queue的子接口,阻塞队列,增加了两个线程状态为无限期等待的方法。
方法:
void put(E e) - 将指定元素插入此队列中,如果没有可用空间,则等待。
E take() - 获取并移除此队列头部元素,如果没有可用元素,则等待。
数组结构实现,有界队列
没写完,抽空给补上
标签:增加 方法 指定元素 实现 无锁 线程状态 交换 阻塞队列 blocking
原文地址:https://www.cnblogs.com/MonkeySun/p/13347193.html