gpt4 book ai didi

scjp - eclipse java多线程程序调试

转载 作者:行者123 更新时间:2023-12-03 05:34:12 27 4
gpt4 key购买 nike

在调试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() + " ");
}
}

最佳答案

调试器从主线程开始,因为断点位于主线程中。
t.start() 生成一个新线程。
但调试器将继续主线程本身。

如果你想调试新创建的线程,那么你还必须在run()方法中设置断点。然后调试器控制权转到新创建的线程,但它是不可见的用户。

如果你想在新创建的线程的run()方法中看到控制,那么你必须按照以下步骤操作 -

  1. run() 方法和 main() 方法中放置一个断点。
  2. 开始调试程序,直到遇到语句 t.start()
  3. 完成t.start()后,转到“调试” View 。在那里你会发现有 2 个线程正在运行。(你可以通过“Window -> Show View -> Debug”找到 Eclipse 中的“Debug” View )。
    • 第一个是主线程
    • 第二个是新创建的线程(例如 [Thread-1])
  4. 点击第二个线程可以看到run方法中的控件。
  5. 线程执行完成后,再次进入“调试” View 并点击主线程继续主线程调试。

注意:如果您在第 3 步结束后继续主线程,那么您将无法调试新线程。

关于scjp - eclipse java多线程程序调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18314679/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com