比方说,在Java中,我有一个受限制的BlockingQueue
,并且我希望最多使用N
个线程来处理该队列中的项目。 N
的数量应可调。解决方案应从队列中取出不超过N
个项目,以使其保留其提供反压力的作用。我将如何实现?
我在http://jcip.net/listings/BoundedExecutor.java上走了很长一段路,但这实际上并不能调整大小。
答案 0 :(得分:1)
也许您可以升级类http://jcip.net/listings/BoundedExecutor.java,以提供可以向信号量添加更多许可的功能(您可以使用release(int许可)添加更多许可)并使用CachedThreadPool提供所需的灵活性?