java 定时器框架_java定时器
java定時(shí)器
什么是Java定時(shí)器?
Java 定時(shí)器就是在給定的間隔時(shí)間執(zhí)行自己的任務(wù); Java實(shí)現(xiàn)定時(shí)器有以下幾種:
通過Timer來實(shí)現(xiàn)定時(shí)任務(wù)
Timer 是來自 java.util.Timer
指定時(shí)間執(zhí)行任務(wù)
/**
* @author spp
* @date 2020-10-14 09:04
**/
public class TimerTest {
public static void main(String[] args) {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
System.out.println("任務(wù)執(zhí)行:" + System.currentTimeMillis());
}
}, 5000);
System.out.println("任務(wù)開始:"+System.currentTimeMillis());
//取消任務(wù)
//timer.cancel();
}
}
結(jié)果
延后執(zhí)行,隨后以固定時(shí)間執(zhí)行任務(wù)
/**
* @author spp
* @date 2020-10-14 09:04
**/
public class TimerTest {
public static void main(String[] args) {
Timer timer = new Timer();
//同scheduleAtFixedRate
timer.schedule(new TimerTask() {
public void run() {
System.out.println("任務(wù)執(zhí)行:" + System.currentTimeMillis());
}
}, 5000,1000); //延遲5秒執(zhí)行,隨后每一秒執(zhí)行一次
System.out.println("任務(wù)開始:"+System.currentTimeMillis());
//取消任務(wù)
//timer.cancel();
}
}
結(jié)果
任務(wù)開始:1602638067502
任務(wù)執(zhí)行:1602638072502
任務(wù)執(zhí)行:1602638073502
任務(wù)執(zhí)行:1602638074503
任務(wù)執(zhí)行:1602638075503
任務(wù)執(zhí)行:1602638076503
任務(wù)執(zhí)行:1602638077503
通過線程池ScheduledExecutorService
指定時(shí)間執(zhí)行任務(wù)
public static void main(String[] args) {
//通過線程池ScheduledExecutorService
ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);
scheduledExecutorService.schedule(()->{
System.out.println("任務(wù)執(zhí)行:" + System.currentTimeMillis());
},1000, TimeUnit.MILLISECONDS); //參數(shù)說明:第一個(gè)執(zhí)行的任務(wù);第二個(gè)推遲的時(shí)間;第三個(gè)時(shí)間單位
System.out.println("任務(wù)開始:"+System.currentTimeMillis());
}
結(jié)果
任務(wù)開始:1602638536832
任務(wù)執(zhí)行:1602638537833
執(zhí)行固定定時(shí)任務(wù)
public static void main(String[] args) {
//通過線程池ScheduledExecutorService
ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);
scheduledExecutorService.scheduleWithFixedDelay(()->{
System.out.println("任務(wù)執(zhí)行:" + System.currentTimeMillis());
},2000, 1000,TimeUnit.MILLISECONDS); //參數(shù)說明:第一個(gè)執(zhí)行的任務(wù);第二個(gè)首次執(zhí)行推遲的時(shí)間;第三個(gè)隨后執(zhí)行的推遲時(shí)間;第四個(gè)時(shí)間單位
System.out.println("任務(wù)開始:"+System.currentTimeMillis());
}
結(jié)果
任務(wù)開始:1602638655640
任務(wù)執(zhí)行:1602638657641
任務(wù)執(zhí)行:1602638658643
任務(wù)執(zhí)行:1602638659645
定時(shí)器框架
Spring Task
QuartZ
有的時(shí)候Java代碼定時(shí)任務(wù)也會(huì)讓Linux上執(zhí)行,也就是 Linux Cron
轉(zhuǎn)自:
總結(jié)
以上是生活随笔為你收集整理的java 定时器框架_java定时器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ValueError matplotli
- 下一篇: 宝塔+wordpress搭建/迁移网站