java OptaPlanner后台线程未终止
我们在一个独立的Java应用程序中运行OP(v8.11.1.Final)(因此我们可以对其进行评估),但我们注意到,一旦解算器完成并返回解决方案,JVM将不会终止。在我们从保持JVM活动的main
方法返回后,似乎有一个后台线程仍在运行。解决这个问题的唯一方法是执行System.exit()
,这似乎不是一个很好的解决方案
以下是仍处于活动状态的线程列表。我猜其中一些是JVM管理线程,但仍有一些东西在运行,导致了这个问题
有什么想法吗?如果你需要更多信息,请告诉我。提前谢谢
# 1 楼答案
使用完后,请调用
SolverManager.close()
。 在Quarkus和Spring Boot中,这种情况会自动发生或者更好的方法是,在手臂挡块中使用它:
SolverManager是线程池的包装器。就像线程池需要显式关闭一样,SolverManager也需要显式关闭(这样它就可以关闭其内部线程池)