BlockingQueue

一BlockingQueue

  1. 阻塞队列
  2. 向队列中添加元素时,队列的长度已满阻塞当前添加线程,直到队列未满或者等待超时;
  3. 从队列中获取元素时,队列中元素为空 ,会将获取元素的线程阻塞,直到队列中存在元素 或者等待超时。

二方法

puts操作
add(E e) : 添加成功返回true,失败抛IllegalStateException异常
offer(E e) : 成功返回 true,如果此队列已满,则返回 false(如果添加了时间参数,且队列已满也会阻塞)
put(E e) :将元素插入此队列的尾部,如果该队列已满,则一直阻塞

takes操作
remove(Object o) :移除指定元素,成功返回true,失败返回false
poll() : 获取并移除此队列的头元素,若队列为空,则返回 null(如果添加了时间参数,且队列中没有数据也会阻塞)
take():获取并移除此队列头元素,若没有元素则一直阻塞。
peek() :获取但不移除此队列的头;若队列为空,则返回 null。

other操作
contains(Object o):队列中是否包含指定元素
drainTo(Collection c):队列转化为集合

 

三子类

  1. ArrayBlockingQueue
  2. LinkedBlockingQueue
  3. LinkedBlockingDeque:双向阻塞队列

你可能感兴趣的:(java基础)