比方说,我有一个服务A,它的线程池执行程序调用服务B。我们可以使用自己的值设置核心池的大小和该池的队列。现在,服务B响应请求的速度很慢,因此服务A线程池中的活动线程会增加,这会导致阻塞队列大小增加。如何防止服务A的队列大小增加?
设置
答案 0 :(得分:0)
ThreadPoolExecutor的多个构造函数接受BlockingQueue。
BlockingQueue
是一个界面。一种实现是ArrayBlockingQueue,它的大小是有界的。
ThreadPoolExecutor
的文档中明确提到了这一点:
3。有界队列。有界队列(例如,ArrayBlockingQueue)在与有限的maximumPoolSizes一起使用时有助于防止资源耗尽,但可能更难于调整和控制。 ...