ScheduledExecutorService 定时器的简单使用

今天在改定时任务的时候,发现定时任务整合了ScheduledExecutorService 定时器,来记录一下定时器的简单使用方法。


定时器的作用: 可以定期执行、或者延期执行一个任务。


使用方法如下:

一、创建定时器执行体,即定时器要执行的任务

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * 测试定时器.
 *
 * @author linzp
 * @version 1.0.0
 * CreateDate 2020/9/18 17:05
 */
public class RunWork implements Runnable {

    /**
     * 这是任务执行体,打印当前的时间.
     */
    @Override
    public void run() {
        Logger logger = LoggerFactory.getLogger(RunWork.class);
        logger.info("任务执行了>>>>当前时间 {}", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss")));
    }
}

这里执行的任务很简单,就把当前的时间打印出来

二、创建定时器,并设置周期执行

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

/**
 * @author linzp
 * @version 1.0.0
 * CreateDate 2020/9/18 17:04
 */
public class TimerDemo {

    public static void main(String[] args) {

        //1.创建线程池  它可安排命令给定延迟后运行或定期执行
        ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(2);

        //2.执行任务 (initialDelay为延迟时间,此处延迟0s,立即执行,perio为周期,此处每5s执行一次,后面为时间单位)
        scheduledExecutorService.scheduleAtFixedRate(new RunWork(), 0, 5, TimeUnit.SECONDS);

    }
}

三、运行结果


17:17:01.167 [pool-1-thread-1] INFO com.example.demo.task.RunWork - 任务执行了>>>>当前时间 2020-09-18 05:17:01
17:17:06.026 [pool-1-thread-1] INFO com.example.demo.task.RunWork - 任务执行了>>>>当前时间 2020-09-18 05:17:06
17:17:11.025 [pool-1-thread-1] INFO com.example.demo.task.RunWork - 任务执行了>>>>当前时间 2020-09-18 05:17:11
17:17:16.025 [pool-1-thread-1] INFO com.example.demo.task.RunWork - 任务执行了>>>>当前时间 2020-09-18 05:17:16
17:17:21.026 [pool-1-thread-1] INFO com.example.demo.task.RunWork - 任务执行了>>>>当前时间 2020-09-18 05:17:21
17:17:26.025 [pool-1-thread-1] INFO com.example.demo.task.RunWork - 任务执行了>>>>当前时间 2020-09-18 05:17:26
17:17:31.025 [pool-1-thread-1] INFO com.example.demo.task.RunWork - 任务执行了>>>>当前时间 2020-09-18 05:17:31

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林志鹏JAVA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值