重大的Java BlockingQueue

时间:2011-07-06 16:43:37

标签: java concurrency blockingqueue

所以我在生产者/消费者类型的应用程序中使用固定大小的BlockingQueue [ArrayBlockingQueue],但我希望用户能够动态更改队列大小。问题是没有BlockingQueue实现允许在创建后更改容量。以前有人见过这个吗?有什么想法吗?

2 个答案:

答案 0 :(得分:2)

最明显的解决方案(根据您的具体情况可能适合或不适合)只需使用您想要的更新容量实例化 new 队列。然后将旧队列中的所有内容推送到新队列中。

答案 1 :(得分:1)

您可以扩展LinkedBlockingQueue。它的限制是一个软限制(即只是一个额外的检查),你可以做一些你可以改变的东西(通过禁用内置的并放入你自己的)