1. top命令,找到cpu占用最高的进程
2. 查看该进程的线程, top H -p <pid>
3. ctrl+H 切换到线程模式,找到占用cpu最高的线程。并把线程号转化为十六进制,printf "%x\n" <线程ID>
4. jstack <进程号> 或者pstack <进程号>,把线程栈打印出来。找到对应的线程号就可以分析为什么线程会占用那么高的cpu了。
其他参考资料
https://segmentfault.com/a/1190000004432661
https://blog.youkuaiyun.com/qq_34944965/article/details/81107419