我有一個線程突然死在我身上。在Java中跟蹤消失的線程
線程主循環是這樣的:
while (true) {
try {
<snip>
} catch (InterruptedException e) {
e.printStackTrace();
} catch (Throwable e) {
e.printStackTrace();
}
}
,我開始它想:
thread.setUncaughtExceptionHandler((thread, throwable) -> {
throwable.printStackTrace();
});
我有一個非常可重複的情況,即程序停止工作,當調用Eclipse調試器這線程無處可見。
如何發生這種情況,我怎麼能跟蹤它,我會想我的代碼會捕獲線程可能退出的所有可能的方式,我會得到堆棧跟蹤正在發生的事情...。
愚蠢的問題,你叫'開始'? – MadProgrammer 2015-04-01 04:37:59
如果你的while循環包含'break',那麼代碼將很高興地退出你的循環,並且線程將會結束(假設你首先啓動它)。 – Jason 2015-04-01 04:39:01
好點!我將需要在那裏添加至少一個打印語句!應該看到了。 – nyholku 2015-04-01 04:40:41