在调试java多线程程序时,我放了断点。启动方法后调用控件不会运行menthod你可以告诉我调试程序。
示例代码
class Test extends Thread {
public static void main(String[] args) {
try {
Thread t = new Thread(new Test());
t.start();
t.start();
} catch (Exception e) {
System.out.print("e ");
}
}
public void run() {
for(int i = 0; i < 2; i++)
System.out.print(Thread.currentThread().getName() + " ");
}
}
答案 0 :(得分:7)
调试器以主线程开头,因为你的断点在主线程中
t.start()
产生一个新线程
但调试器将继续使用主线程。
如果要调试新创建的线程,则必须在run()
方法中设置断点。然后调试器控件转到新创建的线程,但对用户不可见。
如果要在新创建的线程的run()
方法中查看控件,则必须按照以下步骤进行操作 -
run()
方法中添加断点以及main()
方法。t.start()
。t.start()
后,转到“调试”视图。你会发现有2个线程正在运行。(你可以在eclipse中找到“Debug”视图,方法是转到“窗口 - &gt;显示视图 - &gt;调试”)。
注意:如果在线程结束后的第3步之后继续使用主线程,那么您将无法调试新线程。