我正在尝试一些代码来实现计划任务,并提出了这些代码.
import java.util.*;
class Task extends TimerTask {
int count = 1;
// run is a abstract method that defines task performed at scheduled time.
public void run() {
System.out.println(count+" : Mahendra Singh");
count++;
}
}
class TaskScheduling {
public static void main(String[] args) {
Timer timer = new Timer();
// Schedule to run after every 3 second(3000 millisecond)
timer.schedule( new Task(), 3000);
}
}
Run Code Online (Sandbox Code Playgroud)
我的输出:
1 : Mahendra Singh
Run Code Online (Sandbox Code Playgroud)
我期望编译器以3秒的周期间隔打印一系列Mahendra Singh,但是尽管等了大约15分钟,我只得到一个输出......我该如何解决这个问题?
我有以下假设的一个简单的DelayQueue演示.
class DelayedThing implements Delayed {
private final long waitUntil;
private final String name;
public DelayedThing(String name, long wait) {
this.name = name;
this.waitUntil = System.currentTimeMillis() + wait;
System.out.println("DelayedThing(" + name + " wait=" + wait + " until-" + waitUntil);
}
@Override
public long getDelay(TimeUnit unit) {
System.out.println(name + " getDelay = " + unit.convert(waitUntil - System.currentTimeMillis(), TimeUnit.MILLISECONDS));
return unit.convert(waitUntil - System.currentTimeMillis(), TimeUnit.MILLISECONDS);
}
@Override
public int compareTo(Delayed o) {
long diff = this.getDelay(TimeUnit.MILLISECONDS) - o.getDelay(TimeUnit.MILLISECONDS);
System.out.println(name …Run Code Online (Sandbox Code Playgroud)