调试多线程Java应用程序

调试多线程Java应用程序,java,debugging,concurrency,Java,Debugging,Concurrency,我在类中有一个被其他类扩展的方法。继承的类在分离的线程中调用方法。此方法在父类中实现(对于每个继承的类都是相同的)。我可以调试这个方法吗?我使用IntelliJ的想法 我的main方法中有这个调用 for (GenericProcessLoop loop : loops) { loop.loopThread(); } 这就是“loopThread()”的样子 public void loopThread() { executor.subm

我在类中有一个被其他类扩展的方法。继承的类在分离的线程中调用方法。此方法在父类中实现(对于每个继承的类都是相同的)。我可以调试这个方法吗?我使用IntelliJ的想法

我的main方法中有这个调用

    for (GenericProcessLoop loop : loops) {
        loop.loopThread();
    }
这就是“loopThread()”的样子

    public void loopThread() {
        executor.submit(new Runnable() {
           @Override
           public void run() {
               loop();
           }
        });
    }

“loop()”这是基类中的方法。由于隐私规定,我不能在这里发布。如果有任何帮助,我们将不胜感激。

设置一个断点,在“调试器”部分,您将有“帧和线程”选项卡。

“我可以以某种方式调试此方法吗?”是的,在方法中设置一个。这样不起作用,它只是被跳过,从“executor.submit()”行到“loopThread()”的最后一行。不管我在“loop()”中是否有断点,提交线程都将继续,而不会在异步操作中的断点处停止。但是实际执行操作的线程将停止在这里。如果执行者曾经运行过操作的代码,我确实有,但是我不能输入方法。它只是被跳过了。好的,我找到了,我只需要在“框架”窗口中选择另一个线程,我就可以抛出这个方法了。谢谢