重大的Java BlockingQueue

Gan*_*alf 8 java concurrency blockingqueue

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

Pet*_*rey 1

您可以扩展 LinkedBlockingQueue。它的限制是一个软限制(即只是一项额外的检查),您可以使其成为可以更改的东西(通过禁用内置限制并放入您自己的限制)

  • 您无法通过子类化在这里获得所需的功能;太多是最终的/私人的。 (3认同)
  • “LinkedBlockingQueue”中队列接口实现的所有访问和操作函数都使用“private final intcapacity”字段,而且整个锁定机制都保存在私有函数中,必须重新实现。你基本上会重写课堂上的大部分内容。 (2认同)