我读到了PriorityBlockingQueue
,似乎我对它有些妄想。你可以在下面看到四个陈述。我希望如果你不同意他们,你会纠正我。
PriorityBlockingQueue
的名称 - 它是一个阻止集合。PriorityBlockingQueue
提供poll
,remove
,put
等非阻止方法;并且似乎只有poll(long timeout, TimeUnit unit)
和take
方法被阻止。 结论:从第四个声明中我得出结论,PriorityBlockingQueue
既可以用作阻止队列也可以用作非阻塞队列。
问题:我的结论是否正确?我可以对所有其他阻止集合说同样的话吗?
答案 0 :(得分:2)
你是对的。有时,即使您经常使用阻止操作,也不会阻止某些操作。
来自BlockingQueue
界面的javadoc:
另外支持等待队列的操作的队列 在检索元素时变为非空,并等待空间 存储元素时在队列中可用。
因此,阻塞属性是对正常队列功能的补充。因此,阻塞队列是一个队列,但队列不一定是阻塞队列。