Intellij Idea使用线程进行调试

jus*_*rld -1 java debugging multithreading intellij-idea

我是Intellij Idea的新手,我发现它是一个很好的IDE.我正在将它用于分布式系统项目(并且可以想象)我大量使用线程和并发编程以及超时等工具.

我的问题是,当调试器在断点线上停止时,似乎调试器不会停止时间流.

我会试着更好地解释自己.我有一个future我用作线程任务的超时:如果它在一定时间内没有完成任务,那么就会出现TimeoutException并做一些事情,否则做其他事情.问题是,对于调试器,此超时似乎不会在断点行期间停止,因此程序的行为会因调试器或正常执行而异.

这是正常的吗?有什么办法可以解决吗?

esi*_*n88 6

试试这个:运行 - >查看断点 - >找到你的断点 - >第一个复选框(Suspend).尝试将暂停模式设置为Thread而不是All.因此,只有断点发生的线程才会被挂起而不是应用程序中的所有线程.或者尝试禁用Suspend此断点.您可以将某些消息记录到控制台,而不是暂停.看看Log message to consoleLog evaluated expression选项.这是针对Idea 12.我知道的Idea 14有相同的选项.