性能问答>请教大佬,线程运行过程中退出,怎么查问题?>
4回复
2年前

请教大佬,线程运行过程中退出,怎么查问题?



刚开始执行的时候线程一直在工作的,并发访问大约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);
		}
	}
}

望大佬们给点意见。

1277 阅读
请先登录,查看4条精彩评论吧
快去登录吧,你将获得
  • 浏览更多精彩评论
  • 和开发者讨论交流,共同进步