• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Java定时器Timer的使用

java 佚名 2年前 (2023-03-11) 19次浏览 已收录 0个评论

标签:定时器 java format Timer Java TimerTask import public

这是几年前写的旧文,此前发布Wordpress小站上,现在又重新整理。算是温故知新,后续会继续整理。如有错误望及时指出,在此感谢。

我们经常在项目中遇到需要定时执行某个业务的操作.

常见的做法是创建一个线程一直运行着,通过sleep方法来达到定时任务的效果.

其实JDK自带java.util.Timer定时器.

可以帮我们达到:

1.在指定时间执行某个动作;

2.在指定一个固定的时间间隔执行某个动作;

Timer是个执行器,我们只需要给它提交TimerTask任务类,它就会按照我们的定义进行执行.

TimerTask非常简单,就是一个线程.

这里我用固定时间间隔来举例

import java.time.LocalDateTime;
import java.time.<a href="https://www.gaodaima.com/tag/f" title="查看更多关于f的文章" target="_blank">f</a>ormat.DateTimeFormatter;
import java.util.Timer;
import java.util.TimerTask;

public class TimeTaskTest1 {

    public static void main(String[] args) {

        MyTimerTask metricTimerTask = new MyTimerTask();

        Timer timer = new Timer();
        // 定义开始等待时间  --- 等待 5 秒
        // 1000ms = 1s
        final long delay = 5000;
        // 定义每次执行的间隔时间
        final long intevalPeriod = 1000 * 5;
        // schedules the task to be run in an interval
        // 安排任务在一段时间内运行
        printNow("app");
        timer.scheduleAtFixedRate(metricTimerTask, delay, intevalPeriod);
//        timer.schedule(metricTimerTask, delay, intevalPeriod);
    }

    public static void printNow(String str) {
        LocalDateTime now = LocalDateTime.now();
        String format = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
        System.out.println(str + ":" + format);
    }

    static class MyTimerTask extends TimerTask {
        @Override
        public void run() {
            try {
                printNow("start");
                System.out.println("do something...");
                Thread.sleep(10000);
                printNow("stop");
                System.out.println("---------------");
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }
    }
}

总结:

通过定时器,可以帮助我们减少很多不必要的冗余代码.

标签:定时器,java,format,Timer,Java,TimerTask,import,public

来源: https://www.cnblogs.com/panshan-lurenjia/p/16401874.html


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Java定时器Timer的使用

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址