java.util.Timer工作不正常

java.util.Timer工作不正常,java,timer,schedule,Java,Timer,Schedule,我正在做一个学校的项目,我对时间表有一些问题。我以20秒倒计时开始日程安排。在开始计划之前,我打印一个带有系统当前日期的文本。然后,在20秒结束后,我再次打印系统的当前日期和时间。问题在于,两个日期之间没有20秒的延迟,而是需要大约2分钟才能打印第二条消息。我不知道怎么了 代码如下: ... System.out.println(date); timer = new Timer(); try { timer.schedule(new TimerTask() { @Over

我正在做一个学校的项目,我对时间表有一些问题。我以20秒倒计时开始日程安排。在开始计划之前,我打印一个带有系统当前日期的文本。然后,在20秒结束后,我再次打印系统的当前日期和时间。问题在于,两个日期之间没有20秒的延迟,而是需要大约2分钟才能打印第二条消息。我不知道怎么了

代码如下:

...
System.out.println(date);
timer = new Timer();
try {
    timer.schedule(new TimerTask() {
        @Override
        public void run() {
            date = new Date();
            System.out.println(date);
        }
        }, 20 * 1000);
} catch (Throwable e) {
    e.printStackTrace();
}    
...

这些代码由许多线程执行(其中一些线程执行正确,但另一些线程的执行间隔为2分钟)。

您需要在
timer.schedule(TimerTask任务,长延迟,长周期)中将延迟传递为
0
因为您只传递两个参数,所以它将工具20*1000作为周期,而不是延迟。不确定这是否有用

输出

Wed Jan 21 17:16:47 IST 2015
Wed Jan 21 17:16:47 IST 2015
Wed Jan 21 17:17:07 IST 2015
Wed Jan 21 17:17:27 IST 2015
Wed Jan 21 17:17:47 IST 2015
Wed Jan 21 17:18:07 IST 2015
Wed Jan 21 17:18:27 IST 2015
Wed Jan 21 17:18:47 IST 2015

当我输入代码的时候,我忘了写那个,但我已经写了,我在打印上得到了一个新的日期。有时它会正确地打印它,但有时它不会得到Wed Jan 21 17:16:47 IST 2015 Wed Jan 21 17:16:47 IST 2015我得到Wed Jan 21 17:16:47 IST 2015 Wed Jan 21 17:18:27 IST 2015有多少线程正在运行此功能,您能提供更多代码吗