Eclipse调试多线程代码,造成主线程停在断点处,而另外起的其他线程早已经跑完,无法调试子线程。
默认情况下,在调试多线程程序时,当遇到断点时(breakpoint),当前线程暂停,而其它线程继续运行。造成主线程停在断点处,而另外起的其他线程早已经跑完,无法调试子线程。
比如下面的例子:
除第21个线程以外,其余都是Running状态。
解决方案:修改 Window->Preferences->Java->Debug,在红色区域内,将默认的Suspend Thread 改为 Suspend VM
再调试多线程程序:
可以看到所有线程都Suspend了。