java - 如何阻止阻塞队列大小在线程池执行器服务中增加?
问题描述
假设我有一个服务 A,它有一个线程池执行程序来调用服务 B。我们可以使用我们自己的值设置该池的核心池大小和队列。现在,服务 B 对请求的响应速度很慢,导致服务 A 线程池中的活动线程增加,从而导致阻塞队列大小增加。如何防止服务 A 的队列大小增加?
环境
解决方案
ThreadPoolExecutor有几个接受BlockingQueue的构造函数。
BlockingQueue
是一个接口。一种实现是ArrayBlockingQueue,它有一个有界的大小。
的文档ThreadPoolExecutor
明确提到了这一点:
3. 有界队列。有界队列(例如,ArrayBlockingQueue)在与有限的 maximumPoolSizes 一起使用时有助于防止资源耗尽,但可能更难以调整和控制。...
推荐阅读
- python - 在保持日期列完整的同时执行 pandas 聚合
- http - 当我使用 `Range: 0-1023` 响应 HTTP 请求时,我应该在响应中包含 `Vary: Range` 吗?
- excel - VBA在选定的单元格中找到重复项并计算它们
- javascript - 增加日期输入按钮可点击区域
- pymongo - 如何在 PyMongo 中添加索引提示选项以聚合查询
- cloudsim - Cloudsim:分配几个小云给一个虚拟机
- google-coral - 无法让 USB 在具有 Coral Edge TPU 的 Raspberry-Pi 零上工作
- flutter - 具有多个期货的 Flutter GestureDetector
- java - 使用数组为跑步比赛编写程序
- azure - IoTHubTrigger Azure 函数不触发