我有一个使用Producer和Consumer模式的代码。在生产者生成一些数据对象的地方将它们放入阻塞队列中,消费者从队列处理中消耗数据对象并将其发送到另一个类
制片人 - >阻止队列(数据对象)< - 消费者 - >解析器 - >其他申请
现在生产者生产的比率可能会有所不同,这意味着入队的数据对象可能会有所不同。
处理消费者需要在线程中运行的队列中的所有数据对象。
现在我的要求是有大量数据对象入队的地方我将消费者线程增加到预定义数量,以便及时处理数据对象,但是当数据队列数量较少/队列中的数据是减少我也想减少线程。
简而言之,我想根据队列的大小改变线程数。我能做到这一点的最佳方式是什么。
答案 0 :(得分:0)
使用java.util.concurrentThreadPoolExecutor
工作