我读了约PriorityBlockingQueue
,似乎我有一些妄想。您可以在下面看到四条陈述。我希望如果你不同意他们,你会纠正我。PriorityBlockingQueue:是否真的阻止
- 如果线程无法对集合执行操作,则阻塞集合会阻塞线程。 (阻塞直到线程可以继续的条件)。主要目的 - 生产者 - 消费者计划。
- 非阻塞集合不会阻塞线程,并且线程继续执行。主要目的 - 读者不应该等待作家的计划。我的意思是写入后的延迟读取延迟时间不明显的方案。
- 从名称
PriorityBlockingQueue
开始 - 这是一个阻止集合。 PriorityBlockingQueue
提供诸如poll
,remove
,put
等的非阻塞方法;似乎只有poll(long timeout, TimeUnit unit)
和take
方法阻塞。
结论:从第四语句我断定PriorityBlockingQueue
可以既用作阻塞和非阻塞队列。
问题:我的结论是否正确?我可以对所有其他阻止集合进行相同的说明吗?
不会编写一些代码来测试这个比在这个SO上发布Q并且等待某人给你答案更好吗?文档中有哪些部分不清楚这些方法的用途? –
@BrianRoach我在自己测试了所有这些方法之后编写了这个问题。我只想检查我是否理解所有正确的 –