4回复
3年前
请教大佬,线程运行过程中退出,怎么查问题?
刚开始执行的时候线程一直在工作的,并发访问大约8分钟后,线程退出了,后台没有任何日志,检查jstack中发现线程确实不在了,目前已经做过的尝试有:
1,查看当时的CPU和内存状态,CPU比较高,8核的CPU占用500%多,内存充足,16G只有了大约4G;
2,查看 /var/log/messages 日志没有任何相关的信息。
想查出退出的具体原因,请问该如何查询?
去除业务的线程代码如下:
public void run() {
while (true) {
try {
if (jedis.exists(appName)) {
Map<String, String> requests = jedis.hgetAll(appName);
for (Map.Entry<String, String> entry : requests.entrySet()) {
service.execute(new HandleThread());
}
Thread.sleep(1);
} else {
logger.debug("redis 数据为空");
Thread.sleep(200);
}
} catch (Exception e) {
logger.error("扫描文件夹出错", e);
}
}
}
望大佬们给点意见。
1586 阅读