BoundedBlockingQueue Java

BoundedBlockingQueue Java,java,concurrency,priority-queue,java-7,akka,Java,Concurrency,Priority Queue,Java 7,Akka,我正在寻找一个BoundedBlockingQueue,它可以接受任何其他队列,并使其具有边界和阻塞 我发现akka.util.BoundedBlockingQueue可以做到这一点,但是源代码中有一些补丁。所以我不确定使用代码是否明智 最后,我希望有一个PriorityQueue有界并可用于并发使用 是否有其他类可用于此任务?也许在Java 7中?akka BoundedBlockingQueue对我来说似乎很合适()。我真的会考虑使用它(至少在编写了一套很好的单元测试之后,因为AKKA中缺少

我正在寻找一个
BoundedBlockingQueue
,它可以接受任何其他
队列
,并使其具有边界和阻塞

我发现
akka.util.BoundedBlockingQueue
可以做到这一点,但是源代码中有一些补丁。所以我不确定使用代码是否明智

最后,我希望有一个PriorityQueue有界并可用于并发使用


是否有其他类可用于此任务?也许在Java 7中?

akka BoundedBlockingQueue对我来说似乎很合适()。我真的会考虑使用它(至少在编写了一套很好的单元测试之后,因为AKKA中缺少这个类的测试)

FIXMEs处于非常奇怪的情况下,比如在后备队列上调用removeAll,然后它就不是空的,这在后备队列类的实现中是一个非常糟糕的错误


我不明白你所说的“代码不允许我将构造函数设置为泛型”是什么意思。

是否只通过这个阻塞队列访问包装好的队列?是的,真正的队列可以完全隔离。这是一个有趣的问题。如果ArrayBlockingQueue继承了一个抽象的BoundedBlockingQueue类,强制重写insert和extract方法,那就更好了。Java 7中没有任何东西支持这一点。如果PriorityQueue是隔离的,您将如何更改它以使其有界,包装队列不会使原始队列有界。为什么不呢?如果包装器是对队列的唯一访问,那么包装器可以进行大小检查,然后调用wait。我不明白为什么这不起作用。这是可行的,我只是想把队列作为通用参数,但你只需要你正在使用的对象……因为你看了代码。通常,put可以引发中断异常。但是代码不知怎么吞没了它?Wait在被中断时会抛出一个中断的异常。WaitingUnterruptibly是一个不可中断的版本。但是请注意,我查看了它的Scala版本。我还没有找到Java版本。代码不在GIT中,所以google找不到。但是你可以在这里找到它。但我认为它将与scala的东西一样。我已经和Doug(Lea)谈过为jsr166(某物)添加类似的东西