Java 倒计时与线程

标签 java multithreading runnable countdown

我用java编写了一个用于倒计时时钟的类。我的类(class)如下所示:

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();

最佳答案

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

通过让 CountDown 在实现中使用 Thread,您可以从使用您的 CountDown 的任何人手中夺走大量控制权。请参阅"implements Runnable" vs. "extends Thread"

关于Java 倒计时与线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41753154/

相关文章:

android - 为什么在运行我的应用程序一段时间后出现 ConcurrentModificationException?

c# - 如何在 C# 中的特定确切时间(离现在很远)执行代码?

java - Spring中的线程范围与请求范围

java - Netbeans 插入代码

Java 图形不从玩家类中绘制 getX() 和 getY()

python - 池模块和漂亮的汤出现奇怪的错误 : Invalid URL 'h'

java - 在 JavaFx 中管理至少三个线程

java - 使用十六进制和 Java 集合框架选择

Java JList 模型 addElement() 破坏了列表的视觉表示