12

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

4

2 回答 2

2

最明显的解决方案(根据您的情况可能合适也可能不合适)是简单地用您想要的更新容量实例化一个新队列。然后将旧队列中的所有内容推送到新队列中。

于 2011-07-06T16:51:57.480 回答
1

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

于 2011-07-06T16:46:39.563 回答