Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.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程序执行已暂停,我无法进入_Java_Eclipse_Multithreading_Debugging - Fatal编程技术网

java程序执行已暂停,我无法进入

java程序执行已暂停,我无法进入,java,eclipse,multithreading,debugging,Java,Eclipse,Multithreading,Debugging,我在Eclipse中的一个项目中工作,该项目使用ExecutorService类。嗯,我不熟悉多线程或并发,但我面临的问题是,当我调试时,我无法继续使用第五步进入下一个方法。更具体地说,我将断点放在: pool.awaitTermination(TERMINATION_TIMEOUT, TimeUnit.DAYS); 我不能再继续了。执行被挂起,如果按下挂起按钮未打开,它将停止到Unsafe.parkboolean,long是java的,我看不到代码。在那里,我似乎无法继续使用unpend或s

我在Eclipse中的一个项目中工作,该项目使用ExecutorService类。嗯,我不熟悉多线程或并发,但我面临的问题是,当我调试时,我无法继续使用第五步进入下一个方法。更具体地说,我将断点放在:

pool.awaitTermination(TERMINATION_TIMEOUT, TimeUnit.DAYS);
我不能再继续了。执行被挂起,如果按下挂起按钮未打开,它将停止到Unsafe.parkboolean,long是java的,我看不到代码。在那里,我似乎无法继续使用unpend或step-into。真正令人讨厌的是,我可以继续使用resume F8,这会导致我进入下一个断点,就像什么都没发生一样。 如果有任何用处,参数似乎是TERMINATION\u TIMEOUT=100,TimeUnit.DAYS=6

我看过其他帖子,我猜ThreadPoolExecutor可能抛出了一个异常,但建议的解决方案对我不起作用,或者我没有成功地应用它们


无论如何,您知道如何克服这个问题吗?

与其在池上设置断点,为什么不在您放入Executor服务的可运行实例上设置断点


如果由于提交此类可运行文件的位置不同而无法做到这一点,那么只需编写一个可运行的包装器来包装真正的任务,并捕获抛出的任何异常;然后对用于实际运行此类异常捕获可运行包装器的执行器进行子类化。因此,您可以获得所需的所有异常。

Unsafe.park不是公共API,因此源代码不随JDK提供。但通常你不需要调试。它只是等待executor服务当前运行的所有任务完成。对你来说,最多要等100天。