Java定时器示例

Java定时器示例在指定的时间或频率内完成对应的任务,比如项目中,日志需要定时清理、有些数据可能需要每天凌晨去处理,一般这种需求我们都会使用到定时器这个机制去处理他。

Java定时器

定时器

在指定的时间或频率内完成对应的任务,比如项目中,日志需要定时清理、有些数据可能需要每天凌晨去处理,一般这种需求我们都会使用到定时器这个机制去处理他。

1、Timer

线程调度任务以供将来在后台线程中执行的功能。任务可以安排一次执行,或定期重复执行。

返回值 方法名&参数 说明
void schedule(TimerTask task, Date time) 在指定的时间(time)安排指定的任务(task)执行。
void schedule(TimerTask task, Date firstTime, long period) 根据指定的时间(firstTime)和指定的频率(period)安排指定的任务(task)执行。
void schedule(TimerTask task, long delay) 在指定的延迟(delay)之后开始执行任务(task)
void schedule(TimerTask task, long delay, long period) 在指定 的延迟(delay)之后开始,根据指定的频率(period)重复执行的指定任务(task)。
void cancel() 终止此计时器,丢弃任何当前计划的任务。
int purge() 从该计时器的任务队列中删除所有取消的任务。
/** * 该类位于 java.util.Timer(计时器)配合 java.util.TimerTask(计时器任务)来使用 */
 public static void main(String[] args) { 
   
        Timer timer = new Timer();
        long time = System.currentTimeMillis();
        timer.schedule(new TimerTask() { 
   
            @Override
            public void run() { 
   
                if(System.currentTimeMillis() > time + 10000){ 
   
                    // 取消这个定时任务
                    timer.cancel();
                    System.out.println("定时任务结束");
                }
                System.out.println(System.currentTimeMillis());
            }
        }, 0, 1000);
    }

2、简易版定时器

public static void main(String[] args) { 
   
        long start = System.currentTimeMillis();
        TaskTest taskTest = new TaskTest();
        taskTest.schedule(5000,() -> 				  System.out.println(System.currentTimeMillis()));
    }

    boolean isBreak = false;
    private void cancel(){ 
   
        isBreak = true;
    }
    public void schedule(long interval,Runnable runnable){ 
   
        new Thread(() -> { 
   
            while (true) { 
   
                if(isBreak)
                    break;
                runnable.run();
                try { 
   
                    Thread.sleep(interval);
                } catch (InterruptedException e) { 
   
                    e.printStackTrace();
                }
            }
        }).start();
    }

今天的文章Java定时器示例分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/10011.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注