【发布时间】:2016-12-01 15:01:38
【问题描述】:
假设有一个线程池运行在具有 4 个 CPU 的机器上,我想对该池进行负载动态控制。当池中有一些线程在运行时,是否可以更改 corePoolSize?即负载低时,最多允许2个线程同时运行,而负载高时,则允许4个线程同时运行。如果没有,是否有合适的解决方案?
【问题讨论】:
-
“大多数情况下,核心和最大池大小仅在构造时设置,但也可以使用 setCorePoolSize(int) 和 setMaximumPoolSize(int) 动态更改。”来自docs.oracle.com/javase/8/docs/api/java/util/concurrent/…
-
您打算如何检测高/低负载?
-
Re,“如果没有,有合适的解决方案吗?”如果遇到最坏的情况,没有什么能阻止您实现自己的线程池。
-
非常感谢您的评论。
标签: java multithreading threadpool java.util.concurrent threadpoolexecutor