线程结束确定

时间:2014-03-20 13:04:34

标签: java multithreading

点击按钮时会运行以下线程。

open.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        calls();
    }
});


private void calls() {
    Thread t = new Thread(this);
    t.start();
}

@Override
public void run() {
    reads();
}

public void reads() {
    ....
    ....
    counter++;
    // The Thread should stop here right>
}

但它并没有结束。我正在使用thread.stop()来阻止那里的线程。我知道柜台必须去的范围。我在UI中显示计数器值。如果我在计数器到达结束状态后单击打开按钮,则会显示Interrupted异常。

1 个答案:

答案 0 :(得分:1)

在函数外部定义t对象,可能在构造函数中。然后你可以用这个来阻止它:

 t.interrupt();

修改

Thread t;
public myclass()//your constructor
{
t=new Thread(this);
}

    open.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            calls();
        }
    });


    private void calls() {
        t.start();
    }

    @Override
    public void run() {
        reads();
    }

    public void reads() {
        ....
        ....
        counter++;
t.interrupt();// The Thread should stop here right>

    }