Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Intellij Idea线程调试_Java_Multithreading_Debugging_Intellij Idea - Fatal编程技术网

Java Intellij Idea线程调试

Java Intellij Idea线程调试,java,multithreading,debugging,intellij-idea,Java,Multithreading,Debugging,Intellij Idea,我是Intellij的新手,我发现它是一个很好的IDE。我将它用于一个分布式系统项目,并且(正如您所想象的)我大量使用线程和并发编程以及timeout等工具 我的问题是,当调试器在断点行上停止时,调试器似乎没有停止时间流 我会试着更好地解释我自己。我有一个future作为线程任务的超时:如果它没有在某个时间内完成任务,那么就会出现TimeoutException并执行一些操作,否则就执行其他操作。问题是,对于调试器,此超时似乎不会在断点行期间停止,因此程序的行为会因调试器或正常执行而有所不同 这

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

我的问题是,当调试器在断点行上停止时,调试器似乎没有停止时间流

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


这正常吗?有什么方法可以解决它吗?

是的,这是正常的,并且这种方法适用于任何其他调试器<代码>TimeoutException根据系统中经过的实际时间发生,不幸的是,没有任何调试器能够停止时间流。

是的,这是正常的,并且这种方式适用于任何其他调试器
TimeoutException
根据系统中经过的实际时间发生,不幸的是没有调试器能够停止时间流。

尝试以下操作:运行->查看断点->查找断点->第一个复选框(
挂起
)。尝试将挂起模式设置为
Thread
,而不是
All
。所以只有出现断点的线程才会被挂起,而不是应用程序中的所有线程。或者尝试禁用此断点的
挂起
。您可以将一些消息记录到控制台,而不是挂起。查看控制台的
日志消息
日志表达式
选项。这是为想法12准备的。据我所知,Idea 14有相同的选项。

试试这个:运行->查看断点->查找断点->第一个复选框(
挂起
)。尝试将挂起模式设置为
Thread
,而不是
All
。所以只有出现断点的线程才会被挂起,而不是应用程序中的所有线程。或者尝试禁用此断点的
挂起
。您可以将一些消息记录到控制台,而不是挂起。查看控制台的
日志消息
日志表达式
选项。这是为想法12准备的。据我所知,创意14有相同的选择。

IntelliJ没有问题;它是市场上最好的JavaIDE。问题在于你对线程缺乏理解。时间不会因为调试器而停止。我认为这在某种程度上是可能的,我发现这是调试的一个大问题!这是我第一次尝试用线程进行调试。我应该如何在不使用断点的情况下调试我的多线程程序(当然使用特别打印除外)?也许你需要磨练你的技能,这样你就不那么依赖调试器了?这是一个很好的工具,但你不能期望它停止时间;没什么大问题。您可以调试多线程程序;你不能停止时间。这就是全部。试着模拟测试中的定时任务,使其行为具有决定性;它是市场上最好的JavaIDE。问题在于你对线程缺乏理解。时间不会因为调试器而停止。我认为这在某种程度上是可能的,我发现这是调试的一个大问题!这是我第一次尝试用线程进行调试。我应该如何在不使用断点的情况下调试我的多线程程序(当然使用特别打印除外)?也许你需要磨练你的技能,这样你就不那么依赖调试器了?这是一个很好的工具,但你不能期望它停止时间;没什么大问题。您可以调试多线程程序;你不能停止时间。这就是全部。尝试模拟测试中的定时任务,使其行为具有决定性。