相关疑难解决方法(0)

如何安排任务定期运行?

我正在尝试一些代码来实现计划任务,并提出了这些代码.

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分钟,我只得到一个输出......我该如何解决这个问题?

java schedule timer

73
推荐指数
3
解决办法
14万
查看次数

为什么我的DelayQueue不会以错误的顺序延迟和打印?

我有以下假设的一个简单的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)

java

4
推荐指数
1
解决办法
112
查看次数

标签 统计

java ×2

schedule ×1

timer ×1