Java集合(五):并发队列

前面的笔记在本子上
接着:
操作阻塞队列和非阻塞队列的常用方法:
非阻塞:
  • add
  • remove
  • offer:插入元素到队尾。返回true/false
  • poll:移除并获取队首。返回元素/null
  • peek:获取队首。返回元素/null
一般情况下建议使用offer、poll和peek三个方法,不建议使用add和remove方法。因为使用offer、poll和peek三个方法可以通过返回值判断操作成功与否,而使用add和remove方法却不能达到这样的效果。注意,非阻塞队列中的方法都没有进行同步措施。

阻塞队列:

  阻塞队列包括了非阻塞队列中的大部分方法,上面列举的5个方法在阻塞队列中都存在,但是要注意这5个方法在阻塞队列中都进行了同步措施。除此之外,阻塞队列提供了另外4个非常有用的方法

  • put(E e)
  • take()
  • offer(E e,long timeout, TimeUnit unit)
  • poll(long timeout, TimeUnit unit)

 

 

  put方法用来向队尾存入元素,如果队列满,则等待;

  take方法用来从队首取元素,如果队列为空,则等待;

  offer方法用来向队尾存入元素,如果队列满,则等待一定的时间,当时间期限达到时,如果还没有插入成功,则返回false;否则返回true;

  poll方法用来从队首取元素,如果队列空,则等待一定的时间,当时间期限达到时,如果取到,则返回null;否则返回取得的元素;

 
阻塞队列的实现原理、怎么使用、使用场景:
 
 
 
posted @ 2019-07-08 15:30  TangXinPing  阅读(272)  评论(0编辑  收藏  举报