Eclipse 调试多线程应用程序时出现的问题
我正在尝试在Eclipse中调试一个多线程应用程序。有3个线程 阅读 写 控制器 读写都访问控制器中的一个方法。当Write执行该控制器方法时,我试图调试一个问题 我在写线程和控制器中设置了一个断点。我中断写操作,关闭网络连接以模拟错误,然后点击resume,这样我就在控制器中的断点处结束了 当我在那个里的时候,控制器按它应该的方式工作:它杀死我认为的读写线程,并启动新的读写线程。在终止读写操作后,我打开网络连接来模拟正在解决的问题 所有这些都很棒。现在应该发生的是,一切都在愉快地继续着。除了真正发生的是读线程执行,我最后再次碰到我在控制器中设置的断点——和我以前在写线程时碰到的断点相同。更糟糕的是,它仍然认为connex网络不可用——这毫无意义,因为我重新启用了它 这一切让我怀疑是否需要以某种方式停止读取线程的执行。我需要通过Eclipse挂起它吗?甚至可以从调试器中运行的应用程序中终止线程吗 标记我需要通过Eclipse挂起它吗? 不,不需要挂起线程,代码才能正常工作。我很少挂起我的线程,当我怀疑它正在等待我不知道的东西时,我就会挂起它。我使用断点控制停止,有时使用属性 甚至可以从调试器中运行的应用程序中终止线程吗? 不,如果可能的话,关于Java的当前规范,这将不是一个好主意。停止线程的一个好方法是使用标志正确退出run方法: 您确定要退出读写线程吗?一种方法是在运行方法中添加调试信息:Eclipse 调试多线程应用程序时出现的问题,eclipse,Eclipse,我正在尝试在Eclipse中调试一个多线程应用程序。有3个线程 阅读 写 控制器 读写都访问控制器中的一个方法。当Write执行该控制器方法时,我试图调试一个问题 我在写线程和控制器中设置了一个断点。我中断写操作,关闭网络连接以模拟错误,然后点击resume,这样我就在控制器中的断点处结束了 当我在那个里的时候,控制器按它应该的方式工作:它杀死我认为的读写线程,并启动新的读写线程。在终止读写操作后,我打开网络连接来模拟正在解决的问题 所有这些都很棒。现在应该发生的是,一切都在愉快地继续着。除了真
run()
{
System.out.println("start : " + this.getName());
// do your process
System.out.println("stop : " + this.getName());
}
在多线程中,日志记录有时比调试更容易。没有代码,很难更具体