我正在使用不会终止于的javafx应用程序Platform.exit()
。通过反复试验,我将原因归结为一种方法,该方法可以启动两个后台任务。但是两个任务(期货)都被取消,并且isDone
在exit
调用之前。
我有几乎相同的代码可以与swing一起正常工作。所以我想知道这是javafx的“东西”还是我只是愚蠢的。
我已经在Google上进行了广泛的搜索,但在常规技术上找不到任何可追踪“不间断”线程的信息。
我正在通过ExecutorService :: submit和ScheduledExecutorService :: sceduleAtFixedRate创建期货
默认情况下创建的线程ThreadFactory
是NON DEAMON,因此应用程序将一直运行直到shutdown
被调用。要解决此问题,请将您的任务实现为“可中断的”,然后调用shutdownNow()
执行程序,或提供ThreadFactory
将使用来创建守护线程的自定义Thread.setDeamon(true)
。这样,执行程序线程将在主应用程序线程终止时终止。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句