java當(dāng)中的定時器的4種使用方式
對于開發(fā)游戲項目的同胞來說,Timer 這個東西肯定不會陌生,今天對以前自己經(jīng)常使用的定時進行了一番小小的總結(jié)!沒有寫具體實現(xiàn)的原理,只是列舉出了其中的四種比較常見的使用方法,相對而言,所以只要按照其所列舉的例子仿照即可!
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class TimeTest {
public static void main(String[] args) {
timer1();
//timer2();
//timer3();
//timer4();
}
// 第一種方法:設(shè)定指定任務(wù)task在指定時間time執(zhí)行 schedule(TimerTask task, Date time)
public static void timer1() {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
System.out.println("-------設(shè)定要指定任務(wù)--------");
}
}, 2000);// 設(shè)定指定的時間time,此處為2000毫秒
}
// 第二種方法:設(shè)定指定任務(wù)task在指定延遲delay后進行固定延遲peroid的執(zhí)行
// schedule(TimerTask task, long delay, long period)
public static void timer2() {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
System.out.println("-------設(shè)定要指定任務(wù)--------");
}
}, 1000, 5000);
}
// 第三種方法:設(shè)定指定任務(wù)task在指定延遲delay后進行固定頻率peroid的執(zhí)行。
// scheduleAtFixedRate(TimerTask task, long delay, long period)
public static void timer3() {
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
System.out.println("-------設(shè)定要指定任務(wù)--------");
}
}, 1000, 2000);
}
// 第四種方法:安排指定的任務(wù)task在指定的時間firstTime開始進行重復(fù)的固定速率period執(zhí)行.
// Timer.scheduleAtFixedRate(TimerTask task,Date firstTime,long period)
public static void timer4() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 12); // 控制時
calendar.set(Calendar.MINUTE, 0); // 控制分
calendar.set(Calendar.SECOND, 0); // 控制秒
Date time = calendar.getTime(); // 得出執(zhí)行任務(wù)的時間,此處為今天的12:00:00
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
System.out.println("-------設(shè)定要指定任務(wù)--------");
}
}, time, 1000 * 60 * 60 * 24);// 這里設(shè)定將延時每天固定執(zhí)行
}
}
相關(guān)文章
Spring數(shù)據(jù)庫連接池url參數(shù)踩坑及解決
這篇文章主要介紹了Spring數(shù)據(jù)庫連接池url參數(shù)踩坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
java編程FinalReference與Finalizer原理示例詳解
這篇文章主要為大家介紹了java編程FinalReference與Finalizer的核心原理以及示例源碼的分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-01-01
mybatis插件優(yōu)雅實現(xiàn)字段加密的示例代碼
在很多時候,我們都需要字段加密,比如郵箱,密碼,電話號碼等,本文主要介紹了mybatis插件優(yōu)雅實現(xiàn)字段加密的示例代碼,感興趣的可以了解一下2023-11-11
Java?EasyExcel實現(xiàn)合并相同內(nèi)容單元格與動態(tài)標(biāo)題功能
這篇文章主要為大家詳細介紹了Java?EasyExcel如何實現(xiàn)合并相同內(nèi)容單元格與動態(tài)標(biāo)題功能,文中的示例代碼講解詳細,有需要的小伙伴可以參考下2023-12-12
springBoot+mybatis-plus實現(xiàn)監(jiān)聽mysql數(shù)據(jù)庫的數(shù)據(jù)增刪改
mybatis-plus技術(shù)是簡化了繁瑣的代碼操作,把增刪改查的語句都內(nèi)置了,直接調(diào)用就可以實現(xiàn)數(shù)據(jù)庫的增刪改查了,這篇文章主要給大家介紹了關(guān)于springBoot+mybatis-plus實現(xiàn)監(jiān)聽mysql數(shù)據(jù)庫數(shù)據(jù)增刪改的相關(guān)資料,需要的朋友可以參考下2024-01-01

