我用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
的唯一实现(例如 TimerTask
、 FutureTask
等)。
通过让 CountDown
在实现中使用 Thread
,您可以从使用您的 CountDown
的任何人手中夺走大量控制权。请参阅"implements Runnable" vs. "extends Thread"
关于Java 倒计时与线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41753154/