具有以固定速率运行的runnable的java项目能否在一段时间后停止?我的大约40小时后就一直结冰

具有以固定速率运行的runnable的java项目能否在一段时间后停止?我的大约40小时后就一直结冰,java,runnable,freeze,heap-dump,thread-state,Java,Runnable,Freeze,Heap Dump,Thread State,在自学了java之后,我开始了一个项目,通过一个名为“撕裂”的游戏的api调用从网站获取数据。由于一些帮助,我修复了一些小细节,但我遇到的主要问题仍然没有解决。运行了一天半之后,程序就冻结了。到目前为止,我找不到关于它的任何东西。我把垃圾堆了一会儿,我注意到了一些事情。希望有人能帮忙。在第一天左右的时间里,一切都很好(堆转储之后和之后的屏幕截图)。然后,几个小时后,程序仍在运行,但没有运行所有()的方法的实例。几小时后,程序仍在运行(如未终止或退出),但没有活动,也没有方法的实例()。 (某些图

在自学了java之后,我开始了一个项目,通过一个名为“撕裂”的游戏的api调用从网站获取数据。由于一些帮助,我修复了一些小细节,但我遇到的主要问题仍然没有解决。运行了一天半之后,程序就冻结了。到目前为止,我找不到关于它的任何东西。我把垃圾堆了一会儿,我注意到了一些事情。希望有人能帮忙。在第一天左右的时间里,一切都很好(堆转储之后和之后的屏幕截图)。然后,几个小时后,程序仍在运行,但没有运行所有()的方法的实例。几小时后,程序仍在运行(如未终止或退出),但没有活动,也没有方法的实例()。 (某些图像可能需要左右滚动才能查看所有信息)。 我还注意到,在程序冻结后,可运行线程从“timed waiting”变为“waiting”,我也不明白这一点

我还包括了(减去连接到站点时使用的实际键)以及图像,以防有帮助


我感谢所有的帮助和建议,尤其是我的java初学者身份,并提前感谢您。

如果
RunUpdater
构造函数抛出RuntimeException,就会发生这种情况

根据报告:

任务执行的顺序将无限期地继续,直到出现以下异常完成之一:

  • 通过返回的future显式取消任务
  • 执行器终止,也会导致任务取消
  • 执行任务时会引发异常。在这种情况下,在返回的future上调用get将抛出ExecutionException
随后的处决被禁止。随后对返回的future调用isDone()将返回true

我建议替换(在
otherPactiveStats.main()
)中):

ScheduledFuture ScheduledFuture=service.scheduleAtFixedRate(可运行,0,5,时间单位.SECONDS);
试一试{
scheduledFuture.get();
}捕捉(中断异常e){
系统输出打印ln(e);
e、 printStackTrace();
}捕获(执行例外){
系统输出打印ln(e);
e、 printStackTrace();
}
service.shutdown();

这将打印出在
new RunUpdater()
过程中发生的任何异常,然后优雅地关闭应用程序。

是否
getparticlemembers
会抛出一个
异常
,而该异常在
Runnable
实例中没有处理?这将导致ScheduledExecutorService停止运行。我没有意识到这一点,我尝试跟踪所有异常,以查看它可能在哪里产生问题。解决所有问题后(感谢您的帮助),它仍然处于冻结状态。。但这一次是因为我在最新的修改中替换了一行,并将其放在if子句中,它不再运行。希望现在一切都好了。。将密切注意以防万一D
service.scheduleAtFixedRate(runnable, 0, 5, TimeUnit.SECONDS);
ScheduledFuture<?> scheduledFuture = service.scheduleAtFixedRate(runnable, 0, 5, TimeUnit.SECONDS);
try {
    scheduledFuture.get();
} catch (InterruptedException e) {
    System.out.println(e);
    e.printStackTrace();
} catch (ExecutionException e) {
    System.out.println(e);
    e.printStackTrace();
}
service.shutdown();