Java 多线程阻塞队列

BlockingQueue

其主要方法及其说明:
Java 多线程阻塞队列

几种常见的阻塞队列:

ArrayBlockingQueue(int capacity)
ArrayBlockingQueue(int capacity, boolean fair)
构造一个带有指定的容量和公平性设置的阻塞队列。该队列用循环数组实现。

•LinkedBlockingQueue( )
•LinkedBlockingDeque( )
构造一个无上限的阻塞队列或双向队列,用链表实现。
•LinkedBlockingQueue(int capacity )
•LinkedBlockingDeque(int capacity )
根据指定容量构建一个有限的阻塞队列或双向队列,用链表实现

DelayQueue( )
构造一个包含 Delayed 元素的*的阻塞时间有限的阻塞队列。只有那些延迟已经超
过时间的元素可以从队列中移出。
long getDelay(Timellnit unit)
得到该对象的延迟,用给定的时间单位进行度量

PriorityBlockingQueue( )
PriorityBl ockingQueiie(int initialCapacity)
PriorityBlockingQueue(int initialCapacity, Comparator<? super E> comparator )
构造一个无边界阻塞优先队列,用堆实现。
参数:initialCapacity 优先队列的初始容量。默认值是 11。
comparator 用来对元素进行比较的比较器, 如果没有指定,则元素必须
实现 Comparable 接口。
void put(E element )
添加元素, 在必要时阻塞
E take( )
移除并返回头元素, 必要时阻塞。
boolean offer(E element , long time , Timellnit unit )
添加给定的元素, 如果成功返回 true, 如果必要时阻塞, 直至元素已经被添加或超时。
E poll(long time , Timellnit unit )
移除并返回头元素, 必要时阻塞, 直至元素可用或超时用完。失败时返回 null。
void putFirst( E element )
void putLast(E element )
移动并返回头元素或尾元素,必要时阻塞, 直至元素可用或超时。失败时返回 null
E takeFirst( )
E takeLast( )
移除并返回头元素或尾元素, 必要时阻塞。
•boolean offerFirst( E element , long time , Timellnit unit )
•boolean offerLast( E element , long time , TimeUnit unit )
添加给定的元素, 成功时返回 true, 必要时阻塞直至元素被添加或超时。

E pollFirst( 1 ong time , TimeUnit unit )
E pollLast( 1 ong time , Timellnit unit )
移动并返回头元素或尾元素,必要时阻塞, 直至元素可用或超时。失败时返回 null。
• void transfer(E element )
•boolean tryTransfer( E element , long time , TimeUnit unit )
传输一个值, 或者尝试在给定的超时时间内传输这个值, 这个调用将阻塞,直到另一
个线程将元素删除。第二个方法会在调用成功时返回 true。