Java 生产者消费者模式中的线程

Java Threading in producer consumer pattern

我有一个使用生产者和消费者模式的代码。生产者生产一些数据对象将它们放入阻塞队列,消费者从队列中消费数据对象并将其发送到另一个class

生产者 --> 阻塞队列(数据对象)<-- 消费者 --> 解析器 --> 其他应用程序

现在生产者生产的速率可以变化,这意味着排队的数据对象可以变化。

在线程中处理消费者需要运行队列中的所有数据对象。

现在我的要求是在有大量数据对象排队的地方,我将消费者线程增加到预定义的数量,以便及时处理数据对象,但是当队列中的数据/数据量较少时队列减少了我也想减少线程。

简而言之,我想根据队列的大小来改变线程数。实现此目标的最佳方法是什么。

使用 java.util.concurrentThreadPoolExecutor

工作