Java中的自动下载定时器



我正在开发一个用Java编程的下载计时器。我的目标是在下载开始时自动启动计时器,并在下载停止时停止。我有一个基本的计时器,可以在程序启动时计算秒数,但我在自动化它时遇到了问题。我研究过java.io,但我不确定这是否是我需要的。

这是我迄今为止的代码:

package sciencePackage;
public class Timer extends Thread {
@Override
public void run() {
super.run();
try {
for (int i = 1;i < 61; i++)  {
this.sleep(1000);
System.out.println("System is still running -- " + i );
}
} catch (InterruptedException e) {
e.printStackTrace();
}

}
}

创建一个Timer类对于您所建议的用途来说似乎太过分了,更不用说Java中已经内置了一个Timer类。然而,计时器最好用于安排操作,而不是观察它们需要多长时间。

此外,在您发布的代码中,您甚至在开始计时之前就已经完成了super.run()。在这一点上,你的计时器没有什么可等待的了,除非你的下载发生在你没有告诉我们的另一个线程上。

相反,你可能可以做一些更简单的事情,比如:

public void run() {
long startTime = System.nanoTime();
super.run(); 
long endTime = System.nanoTime();
System.out.println("Download Time: " + (end - start) / 1.0e9 + " seconds");
}

最新更新