1、先运行java项目
2、打开任务管理器,找到cpu占用的java进程的PID
3、再利用jdk自带的jstack命令,在控制台下,jstack -l PID >E://wwww.stack,这个命令就是把这个进程的堆栈信息打印到E盘下wwwww.stack这个文件中
4、下载windows查看线程的工具process-explorer 连接 https://download.sysinternals.com/files/ProcessExplorer.zip
5、解压打开,根据系统选择32位的或者64位的打开,找到java程序,找到你刚才任务cpu高的PID,再点击进去,选择Thread的选项卡
6、找到CPU高的TID,这里是10进制的数字,在计算器下输入数字后,比如8504,转换成16进制
7、再打开先前导出的堆栈文件,查询nid等于这个数字的
8、找到熟悉的类,就可以慢慢排查了
9、线程的状态
1 新建状态(New)
2 就绪状态(Runnable)
3 运行状态(Running)
4 阻塞状态(Blocked)
5 死亡状态(Dead)