我有一个线程突然死在我身上。在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