如何告诉线程何时完成?

时间:2014-05-29 15:39:50

标签: java multithreading

我有一种方法可能需要一段时间才能完成,因为它使用互联网来检查某些东西,并且根据互联网的速度可能需要一段时间,所以我把它放在自己的线程中,但我想知道如何我可以注意到这个线程何时完成,因为我需要从主线程更新屏幕。

New thread code looks like this:
Thread newThread = new Thread(){
             @Override
                public void run() {

//My thread code
};
    newThread.start();

这就是线程代码的样子,不会复制和粘贴它使用的所有代码,因为它没有意义但是我想要像

那样的东西
newThread.iscomplete {
//More code
}

沿着这些方向的东西

由于

1 个答案:

答案 0 :(得分:0)

也许你可以在Thread的末尾显示一条消息。哪个有助于让用户知道该过程已经完成。

显示消息

System.out.print("Thread has finished!");

这将位于最后一行,因此只有在执行了上述所有代码并且代码已到达最后一行才能执行时,它才会执行。

Thread newThread = new Thread() {
    @Override
    public void run() {
        //My Thread code
        System.out.print("Done!");
    }
};

这将在控制台中打印完成!(我假设正在使用控制台运行应用程序)。表示代码已被执行。

使用变量

boolean done = false;
Thread newThread = new Thread() {
    @Override
    public void run() {
        //My Thread code
        done = true;
    }
};

使用EventListeners

否则您可以使用事件侦听器来检测线程完成。上面的方法很简单。

http://docs.oracle.com/javase/tutorial/uiswing/events/