如何停止阻止队列大小增加线程池执行程序服务?

时间:2019-04-12 20:15:53

标签: java multithreading

比方说,我有一个服务A,它的线程池执行程序调用服务B。我们可以使用自己的值设置核心池的大小和该池的队列。现在,服务B响应请求的速度很慢,因此服务A线程池中的活动线程会增加,这会导致阻塞队列大小增加。如何防止服务A的队列大小增加?

设置

1 个答案:

答案 0 :(得分:0)

ThreadPoolExecutor的多个构造函数接受BlockingQueue

BlockingQueue是一个界面。一种实现是ArrayBlockingQueue,它的大小是有界的。

ThreadPoolExecutor的文档中明确提到了这一点:

  

3。有界队列。有界队列(例如,ArrayBlockingQueue)在与有限的maximumPoolSizes一起使用时有助于防止资源耗尽,但可能更难于调整和控制。 ...