【发布时间】:2019-09-14 00:11:34
【问题描述】:
我正在运行一个使用固定线程池的 Java 应用程序,其中线程用于向外部服务发出 HTTP 请求。
线程池被故意过度配置,我想获得一些线程池利用率的测量值(即,此时池中 20% 的线程是空闲的,而此时 30% 的线程是空闲的忙)。
是否有一种有效的方法来检查线程池(通过 Executors.newFixedThreadPool(x) 创建的)当前正在执行任务的比例?
我曾考虑创建一个持续运行 Callable 任务的特殊监视器线程,报告利用率,但我不确定这是否会影响线程池本身的性能(通过使线程响应监视器而不是进行 HTTP 调用)。
【问题讨论】:
-
直接使用
ThreadPoolExecutor;它提供了各种“调试”方法。
标签: java threadpool executorservice