我真的寻求关于以下内容的合乎逻辑的解释。我有一个timed task
static TimerTask timedTask = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("timed task");
}
};
Timer timer = new Timer();
timer.schedule(timedTask, (long) logfile.getFileHash().get(1).getTimeStampInNano());
当我运行该代码时,控制台中没有显示任何内容,但是我将其更改为:
Timer timer = new Timer();
timer.schedule(timedTask, (long) logfile.getFileHash().get(1).getTimeStampInMilli());
控制台在run()
方法中显示消息。在我看来,系统无法以纳秒为单位处理时间,因为它们比系统时钟快。但是有一种方法叫做 怎么可能System.nanoTime()
,这意味着系统应该能够识别任务在特定的纳秒开始。