zoukankan      html  css  js  c++  java
  • java 定时器中schedule方法解析

    近期工作中接触到java的定时器,记下自己在使用schedule方法遇到的小问题,时刻提醒自己对待程序要认真再认真。

    先写个小例子:

    package Demo;
    import java.util.Timer;
    public class TimeTaskDemo {
       public static void main(String[] args){

          Timer timer = new Timer(); 
          timer.schedule(new Task(), 60 * 1000); // 60秒后执行Task类,只执行一次

          //timer.schedule(new Task(), 1000, 60*1000); //1秒后每隔60秒执行Task类,重复执行
        }
    }

    package Demo;

    import java.util.TimerTask;
    public class Task extends TimerTask {

       public void run()
      {
        System.out.println("添加你想要执行的任务");
      }

    }

    ps:笔者添加了定时器线程,本来想要添加的功能时1秒后重复执行Task类void schedule(TimerTask task, Date firstTime, long period),然而由于没有认真查看Schedule方法,匆忙选择了void schedule(TimerTask task, long delay),结果导致程序只在60秒后执行了一次Task方法。导致重新编码。

    心得:越是时间紧,越是细节的东西,越要仔细查证。

    Timer的构造方法如下:

    1. Timer() 创建一个新计时器。
    2. Timer(boolean isDaemon)创建一个新计时器,可以指定其相关的线程作为守护程序运行。
    3. Timer(String name)创建一个新计时器,其相关的线程具有指定的名称。
    4. Timer(String name, boolean isDaemon)创建一个新计时器,其相关的线程具有指定的名称,并且可以指定作为守护程序运。

    Schedule重载方法如下:

    1. void schedule(TimerTask task, Date time)安排在指定的时间执行指定的任务。
    2. void schedule(TimerTask task, Date firstTime, long period)安排指定的任务在指定的时间开始进行重复的固定延迟执行
    3. void schedule(TimerTask task, long delay)安排在指定延迟后执行指定的任务。
    4. void schedule(TimerTask task, long delay, long period)安排指定的任务从指定的延迟后开始进行重复的固定延迟执行

     

  • 相关阅读:
    js循环遍历弹框,先弹出第一个之后逐步弹出第二个。。
    js获取字符串的字节长度
    tomcat启动报错:Address already in use: JVM_Bind
    自整理的jquery.Validate验证表达式
    jerichotab 初始化页面显示tab页中的第一个
    POST提交大量数据,导致后面数据丢失
    IDEA启动时自动报Plugin Error错误
    apiCloud检出代码出现以下图示错误:
    javascript的一些在IE下不支持的函数小结
    The Nature of Recognition
  • 原文地址:https://www.cnblogs.com/reborn2012/p/3608936.html
Copyright © 2011-2022 走看看