鍍金池/ 問答/Java  Linux/ java多線程經(jīng)常會碰到線程莫名其妙不執(zhí)行的情況?

java多線程經(jīng)常會碰到線程莫名其妙不執(zhí)行的情況?

核心邏輯基本是死循環(huán)去執(zhí)行,然后執(zhí)行完睡一段時間,有時候會莫名其妙就不動了只能重啟,日志和控制臺都沒有看到有任何exception,感覺就是sleep()這步可能有問題,但又不確定,這種問題要如何去排查?

while(true){
    try {
                Thread.sleep(1000 * 5);
            } catch (InterruptedException e) {
                logger.error(e.getMessage());
            }
}
回答
編輯回答
舊言

估計是死鎖了,用debug排查一下

2017年4月17日 17:13
編輯回答
默念

應(yīng)該是死鎖了。。。多開些線程,用jconsole分析下哪塊代碼產(chǎn)生的

2018年6月21日 12:26
編輯回答
乞許

第一步:查看java進程ID
jps -l -m
9907 org.apache.catalina.startup.Bootstrap start
32349 sun.tools.jps.Jps -l -m
第二步:保存當(dāng)前堆棧日志
jstack -l 9907 > 1.txt
第三步:分析日志

2017年3月22日 14:04