1、第一种方式,Timer类
public static void main(String[] args) {
new Timer().schedule(new TimerTask() {
@Override
public void run() {
System.out.println("执行任务:" + LocalDateTime.now());
}
}, 1000, 1000);
}
2、使用ScheduledExecutorService
public static void main(String[] args) {
ScheduledExecutorService service = Executors.newScheduledThreadPool(10);
service.scheduleAtFixedRate(() -> System.out.println("执行任务A:" + LocalDateTime.now()), 0, 3, TimeUnit.SECONDS);
}
3、使用Spring Task
3.1导入依赖,只需引入spring-boot-starter-web即可,Spring Task包含在其中
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
3.2主类加上注解@EnableScheduling
3.3示例代码
package com.llg.mybatis.task;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
@Component
public class SpringTask {
@Scheduled(cron = "0/1 * * * * *")
public void printSomething(){
System.out.println("执行任务:" + LocalDateTime.now());
}
}
启动程序即可实现每秒打印一下当前时间
此外还可以使用quartz工具来实现定时任务