检测线程是否在java fx中运行

时间:2017-02-14 02:33:36

标签: java multithreading javafx

我尝试了三种方法,但我无法工作。我从这篇文章的最高答案中获取了很多代码How to know if other threads have finished?我非常密切关注该列表中的#5。这是我的问题:在我的主线程中,我需要能够在按下按钮时检测辅助线程是否正在运行。

第一种方法

NotifyThread task = null;

@FXML
private void handleButtonPress(ActionEvent event){
if (thread == null){
     NotifyThread thread = new Thread2(1,0);
}
else{
    //task is already running 
    thread.end()
}

上面代码的问题是线程始终为null。它不是结束现有的线程,而是创建另一个与(坏)

一起运行的线程

第二种方法

if (thread.isAlive())

第三种方法

if(thread.getState.equals(RUNNABLE))

这两种方法都给了我运行时异常

1 个答案:

答案 0 :(得分:1)

你需要

  thread = new Thread2(1,0);

而不是

  NotifyThread thread = new Thread2(1,0);