在Java中,如何处理最多N个线程且N可调的有界队列中的项目?

时间:2018-07-07 16:44:48

标签: java concurrency java.util.concurrent

比方说,在Java中,我有一个受限制的BlockingQueue,并且我希望最多使用N个线程来处理该队列中的项目。 N的数量应可调。解决方案应从队列中取出不超过N个项目,以使其保留其提供反压力的作用。我将如何实现?

我在http://jcip.net/listings/BoundedExecutor.java上走了很长一段路,但这实际上并不能调整大小。

1 个答案:

答案 0 :(得分:1)

也许您可以升级类http://jcip.net/listings/BoundedExecutor.java,以提供可以向信号量添加更多许可的功能(您可以使用release(int许可)添加更多许可)并使用CachedThreadPool提供所需的灵活性?