java中ArrayBlockingQueue集合介绍

ArrayBlocking 是一个阻塞共享队列;

1.对比offer()与put()方法 :

        offer(anObject):表示如果可能的话,将anObject加到BlockingQueue里,即如果BlockingQueue可以容纳,则返回true,否则返回false.(本方法不阻塞当前执行方法的线程)

  offer(E o, long timeout, TimeUnit unit),可以设定等待的时间,如果在指定的时间内,还不能往队列中加入BlockingQueue,则返回失败。

put(anObject):把anObject加到BlockingQueue里,如果BlockQueue没有空间,则调用此方法的线程被阻断直到BlockingQueue里面有空间再继续.

2.对比poll()方法与take()方法

        poll(time):取走BlockingQueue里排在首位的对象,若不能立即取出,则可以等time参数规定的时间(如下介绍),取不到时返回null;(不会造成阻塞)

  poll(long timeout, TimeUnit unit):从BlockingQueue取出一个队首的对象,如果在指定时间内,队列一旦有数据可取,则立即返回队列中的数据。否则知道时间超时还没有数据可取,返回失败。

  take():取走BlockingQueue里排在首位的对象,若BlockingQueue为空,阻断进入等待状态直到BlockingQueue有新的数据被加入;

  *drainTo():一次性从BlockingQueue获取所有可用的数据对象(还可以指定获取数据的个数),通过该方法,可以提升获取数据效率;不需要多次分批加锁或释放锁。

 

方法摘要
 booleanadd(E e)
          将指定的元素插入到此队列的尾部(如果立即可行且不会超过该队列的容量),在成功时返回 true,如果此队列已满,则抛出 IllegalStateException。
 voidclear()
          自动移除此队列中的所有元素。
 booleancontains(Object o)
          如果此队列包含指定的元素,则返回 true。
 intdrainTo(Collection<? super E> c)
          移除此队列中所有可用的元素,并将它们添加到给定 collection 中。
 intdrainTo(Collection<? super E> c, int maxElements)
          最多从此队列中移除给定数量的可用元素,并将这些元素添加到给定 collection 中。
 Iterator<E>iterator()
          返回在此队列中的元素上按适当顺序进行迭代的迭代器。
 booleanoffer(E e)
          将指定的元素插入到此队列的尾部(如果立即可行且不会超过该队列的容量),在成功时返回 true,如果此队列已满,则返回 false。
 booleanoffer(E e, long timeout, TimeUnit unit)
          将指定的元素插入此队列的尾部,如果该队列已满,则在到达指定的等待时间之前等待可用的空间。
 Epeek()
          获取但不移除此队列的头;如果此队列为空,则返回 null。
 Epoll()
          获取并移除此队列的头,如果此队列为空,则返回 null。
 Epoll(long timeout, TimeUnit unit)
          获取并移除此队列的头部,在指定的等待时间前等待可用的元素(如果有必要)。
 voidput(E e)
          将指定的元素插入此队列的尾部,如果该队列已满,则等待可用的空间。
 intremainingCapacity()
          返回在无阻塞的理想情况下(不存在内存或资源约束)此队列能接受的其他元素数量。
 booleanremove(Object o)
          从此队列中移除指定元素的单个实例(如果存在)。
 intsize()
          返回此队列中元素的数量。
 Etake()
          获取并移除此队列的头部,在元素变得可用之前一直等待(如果有必要)。
 Object[]toArray()
          返回一个按适当顺序包含此队列中所有元素的数组。
<T> T[]
toArray(T[] a)
          返回一个按适当顺序包含此队列中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。
 StringtoString()
          返回此 collection 的字符串表示形式。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值