PriorityBlockingQueue
类实现了 BlockingQueue接口,可以参考前面文章有关BlockingQueue接口的详解。.
PriorityBlockingQueue
是无界的并发队列
,它的排序规则和 java.util.PriorityQueue
类一样 ,不能向改队列中插入null.
所有加入到 PriorityBlockingQueue
中的元素必须实现java.lang.Comparable
接口. 因此,元素排序取决于Comparable
决定的优先级进行排序。
注意,PriorityBlockingQueue不为具有相同优先级(compare() == 0)的元素强制任何特定行为。
同时注意, 如果您从PriorityBlockingQueue获取迭代器,迭代器不保证按优先级顺序迭代元素。
下面是 PriorityBlockingQueue
的用法
:
BlockingQueue queue = new PriorityBlockingQueue();
//String implements java.lang.Comparable
queue.put("Value");
String value = queue.take();
参考翻译:http://tutorials.jenkov.com/java-util-concurrent/priorityblockingqueue.html