java - 如何监控执行器服务创建的所有线程的状态
问题描述
有没有办法检查执行器服务创建的所有线程的状态。假设我有 20 个线程。我将如何检查所有这些的状态?
解决方案
如果你真的想监控线程池中所有线程的状态,你可以尝试像下面的代码一样创建你的 ThreadFactory:
public class SelfThreadFactory implements ThreadFactory {
private Map<Long, Thread> stateMap = new ConcurrentHashMap<>();
@Override
public Thread newThread(Runnable r) {
Thread thread = new Thread(r);
stateMap.put(thread.getId(), thread);
return thread;
}
public Map<Long, Thread> getStateMap() {
return stateMap;
}
}
使用 getStateMap() 方法可以获取此 ThreadFactory 创建的所有线程,然后可以获取线程的状态。
推荐阅读
- apache - 强制 www 并重定向根目录
- regex - 在 Golang 中以任何顺序匹配正则表达式
- c# - 带有 Angular 8 的 ASP.NET Core 3、ASP.NET Core 身份、角色和基于令牌的身份验证
- json - 如何在 dart 中编码和解码自定义对象列表到 JSON 和从 JSON 解码?
- java - Feign 注册 - Spring Cloud - 更改目标而不覆盖功能区
- html - 滚动条隐藏在桌面网站上,不滚动,但它适用于移动浏览器
- auth0 - Auth0 通用登录体验注册挂钩
- django - PayPal付款后如何加快自动返回我的网站
- python - 从 Matlab 调用 Python
- firefox - Fontawesome firefox - 200 而不是 304 并锁定