带线程的Java倒计时

时间:2017-01-19 22:50:41

标签: java multithreading runnable countdown

我在java中编写了一个用于倒计时时钟的类。我的班级看起来像这样:

public class CountDown implements Runnable {

    ...

    @Override
    public void run() {

        // The functionality of the clock.

    }

    ...

}

现在,当我想从另一个类运行倒计时时,我使用此代码

(new Thread(new CountDown(10))).start;

我的问题是:

如果我改变这样的课程会更好吗

public class CountDown {

    ...

    public void start() {

        new Thread(new Runnable(){

            @Override
            public void run(){

                // The functionality of the clock.

            }

        ).start();

    }

    ...

}

然后从另一个类中调用它:

new CountDown(10).start();

1 个答案:

答案 0 :(得分:2)

我相信您的第一个代码段是首选解决方案,因为您没有承诺特定的实现。 Thread不是Runnable的唯一实现(例如TimerTaskFutureTask等。)

通过在实施中使用CountDown Thread,您可以从使用CountDown的任何人那里获取大量控制权。见"implements Runnable" vs. "extends Thread"