线程阻止程序终止

时间:2015-04-17 12:33:53

标签: java javafx

我正在研究javafx应用程序,它不会在Platform.exit()上终止。通过反复试验,我逐渐减少了一个启动两个后台任务的方法。但是两个任务(期货)都被取消,并且在isDone之前调用exit

我有几乎相同的代码与swing工作正常。所以我想知道这是javafx'的事情'还是我只是愚蠢。

我已经广泛搜索了广告,但没有发现任何关于追踪'不朽'线程的一般技术。

1 个答案:

答案 0 :(得分:1)

  

我正在通过ExecutorService创建期货:: submit andScheduledExecutorService :: sceduleAtFixedRate

默认情况下创建的线程ThreadFactory是NON DEAMON,因此应用程序将一直运行,直到调用shutdown为止。要解决此问题,请将您的任务实现为“可中断”并在执行程序上调用shutdownNow()或提供将使用ThreadFactory创建deamon线程的自定义Thread.setDeamon(true)。这样,执行程序线程将在主应用程序线程终止时终止。