多线程 队列利用

BlockingQueue方法摘要

    抛出异常     特殊值      阻塞       超时
插入 add(e)     offer(e)  put(e)    offer(e, time, unit)
移除 remove()   poll()    take()    poll(time, unit)
检查 element()  peek()    不可用      不可用



boolean add(E e)
          将指定元素插入此队列中(如果立即可行且不会违反容量限制),成功时返回 true,如果当前没有可用的空间,则抛出 IllegalStateException。
boolean contains(Object o)
         如果此队列包含指定元素,则返回 true。
int drainTo(Collection<? super E> c)
         移除此队列中所有可用的元素,并将它们添加到给定 collection 中。
int drainTo(Collection<? super E> c, int maxElements)
          最多从此队列中移除给定数量的可用元素,并将这些元素添加到给定 collection 中。
boolean offer(E e)
          将指定元素插入此队列中(如果立即可行且不会违反容量限制),成功时返回 true,如果当前没有可用的空间,则返回 false。
boolean offer(E e, long timeout, TimeUnit unit)
          将指定元素插入此队列中,在到达指定的等待时间前等待可用的空间(如果有必要)。
E poll(long timeout, TimeUnit unit)
         获取并移除此队列的头部,在指定的等待时间前等待可用的元素(如果有必要)。
void put(E e)
          将指定元素插入此队列中,将等待可用的空间(如果有必要)。
int remainingCapacity()
          返回在无阻塞的理想情况下(不存在内存或资源约束)此队列能接受的附加元素数量;如果没有内部限制,则返回 Integer.MAX_VALUE。
boolean remove(Object o)
          从此队列中移除指定元素的单个实例(如果存在)。
E take()
          获取并移除此队列的头部,在元素变得可用之前一直等待(如果有必要)。

1.第二个实例主要针对在处理程序过程中的占用大量时间对程序本身没有影响的程序
  使用多线程处理可提高处理的速度。
涉及到:队列和多线程

2.第三个重要针对实战中的应用,稍加改动

你可能感兴趣的:(BlockingQueue)