首页 课程 师资 教程 报名

Java定时器实现示例

  • 2022-03-30 09:46:01
  • 1202次 动力节点

定时器方法

下面给出的是Java Timer定时器类支持的方法。

void cancel():该方法终止当前或本次Timer,同时取消所有当前调度的任务。

int purge():取消后,purge() 方法从队列中移除所有取消的任务。

void schedule(TimerTask task, Date time):将要在指定时间执行的任务排成一行。

void schedule(TimerTask task, Date firstTime, long period):也将任务排成指定开始时间,然后重复执行。

void schedule(TimerTask task, long delay):延迟后也会排队执行任务。

void schedule(TimerTask task, long delay, long period):它还排列任务以重复执行,但它以指定的延迟开始。

void scheduleAtFixedRate(TimerTask task, Date firstTime, long period): 也将任务排成一行,以重复固定速率执行,任务在指定时间开始。

void scheduleAtFixedRate(TimerTask task, long delay, long period):它还排列任务以重复但以固定速率执行,并且任务以指定的延迟开始。

Java Timer Schedule() 示例

下面是一个 Java Timer 示例,其中包括调度指定任务以以固定延迟重复执行的功能,并且该任务具有一些指定的开始时间。

首先,我们声明了一个扩展 TimerTask 类的 Helper 类。在这个 TimerTask 中,我们初始化了一个变量,用于检查执行的计数。

TimerTask 类的 run() 方法用于打印执行完成的次数。在 main 方法中,我们使用了 schedule() 方法的“void schedule(TimerTask task, Date firstTime, long period)”变体来执行 run() 方法任意多次。

我们明确需要停止执行,否则 run() 方法将继续执行。

import java.util.Timer;
import java.util.TimerTask; 
class Helper extends TimerTask {
    public static int i = 1;     
    // TimerTask.run() method will be used to perform the action of the task     
    public void run() {
        System.out.println("This is called " + i++ + " time");
    }
} 
public class example {
    public static void main(String[] args) { 
        Timer timer = new Timer();         
        // Helper class extends TimerTask
        TimerTask task = new Helper();         
        /*
         *  Schedule() method calls for timer class.
         *  void schedule(TimerTask task, Date firstTime, long period)
         */         
        timer.schedule(task, 200, 5000); 
    }
}

输出:

Java 定时器 Cancel() 示例

这是包含 cancel() 方法功能的 Java Timer 类的示例。众所周知,cancel() 方法用于终止此 Timer 并丢弃任何计划任务,但它不会干扰任何当前正在执行的任务或操作。

在这个例子中,我们将看到 for 循环中的语句将继续执行,即使在遇到第一个“停止调用”语句后,即“i”等于 3。

现在我们将继续下面给出的 purge() 方法的示例。

import java.util.*; 
public class example {
    public static void main(String[] args) { 
        Timer timer = new Timer();
        TimerTask task = new TimerTask() {         
        // run() method to carry out the action of the task
        public void run() {
            for(int i=1; i<= 10; i++) {
                System.out.println("Keep on calling");                 
                if(i >= 3) {
                    System.out.println("Stop calling");                    
                    // cancel method to cancel the execution
                    timer.cancel();
                }
            }
        };
    };     
    /*
     *  schedule() method to schedule the execution with start time
     */     
    timer.schedule(task, 5000, 5000);
    }
}

输出:

Java Timer Purge() 示例

如果您比较为 cancel() 和 purge() 方法给出的示例,您会注意到在下面的 purge() 方法示例中,在 cancel() 方法之后放置了一个 break 语句。这将允许控件在“i”变为 3 时立即退出循环。

现在我们已经退出循环,我们尝试返回从队列中删除的任务数。为此,我们在引用变量的帮助下简单地调用了 purge 方法。

import java.util.*;
public class example {
    public static void main(String[] args) { 
        Timer timer = new Timer();
        TimerTask task = new TimerTask() {         
        // run() method to carry out the action of the task
        public void run() {
            for(int i=1; i<= 10; i++) {
                System.out.println("Keep on calling");                 
                if(i >= 3) {
                    System.out.println("Stop calling");                     
                    // cancel method to cancel the execution
                    timer.cancel();
                    break;
                }
            }             
            // Purge after cancellation
            System.out.println("Purge " + timer.purge());
        };
    };     
    /*
     *  schedule() method to schedule the execution with start time
     */     
    timer.schedule(task, 5000, 5000);
    }
}

输出:

通过上述介绍,相信大家对Java定时器实现已经有所了解,大家如果想了解更多相关知识,可以关注一下java timer的用法,这对大家的学习一定会有所帮助的。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交