• Java 定时循环运行程序


    Timer 和 ScheduledExecutorSeruvce 都能执行定时的循环任务,有函数 scheduleAtFixedRate。但是,如果任务运行时间较长,超过了一个周期时长,下一个任务就会被延缓执行。

    例如代码:

     1 public class ScheduledRunnableTest extends TimerTask {
     2     public void run() {
     3         try {
     4             Thread.sleep(2000);
     5             System.out.println(new Timestamp(System.currentTimeMillis()).toString());
     6         } catch (InterruptedException e) {
     7             e.printStackTrace();
     8         }
     9     }
    10 
    11     public static void main(String[] args) {
    12         Timer timer = new Timer();
    13         timer.scheduleAtFixedRate(new ScheduledRunnableTest(), 0, 1000);
    14     }
    15 }

    运行结果为:

    2014-07-31 13:12:30.002

    2014-07-31 13:12:32.006

    2014-07-31 13:12:34.006

    2014-07-31 13:12:36.008

    并不是希望的每秒运行一次。所以得重开线程执行,代码如下:

     1 public class ScehduledThreadTest extends Thread{
     2     public void run() {
     3         try {
     4             Thread.sleep(2000);
     5             System.out.println(new Timestamp(System.currentTimeMillis()).toString());
     6         } catch (InterruptedException e) {
     7             e.printStackTrace();
     8         }
     9     }
    10 
    11     public static void main(String[] args) {
    12         Timer timer = new Timer();
    13         timer.scheduleAtFixedRate(new TimerTask() {
    14                                             public void run() {
    15                                                 new ScehduledThreadTest().start();
    16                                             }
    17                                         }, 
    18                                     0, 1000);
    19     }
    20 }

    这样的结果就是:

    2014-07-31 13:15:10.652

    2014-07-31 13:15:11.652

    2014-07-31 13:15:12.652

     

     

     

  • 相关阅读:
    js编码中常用的知识点
    oracle函数的使用
    oracle 临时表的使用
    oracle11G归档日志管理
    oracle中 高水位线详解
    oracle并行模式(Parallel)
    oracle常用函数详解(详细)
    oracle系统表的查询
    15000 字的 SQL 语句大全
    oracle_单引号问题和execute immediate 赋值问题
  • 原文地址:https://www.cnblogs.com/keepthinking/p/3880589.html
Copyright © 2020-2023  润新知