java當中的定時器的4種使用方式


對於開發游戲項目的同胞來說,Timer 這個東西肯定不會陌生,今天對以前自己經常使用的定時進行了一番小小的總結!沒有寫具體實現的原理,只是列舉出了其中的四種比較常見的使用方法,相對而言,所以只要按照其所列舉的例子仿照即可!

 1 import java.util.Calendar;
 2 import java.util.Date;
 3 import java.util.Timer;
 4 import java.util.TimerTask;
 5  
 6 public class TimeTest {
 7   public static void main(String[] args) {
 8     timer1();
 9     //timer2();
10     //timer3();
11     //timer4();
12   }
13  
14   // 第一種方法:設定指定任務task在指定時間time執行 schedule(TimerTask task, Date time)
15   public static void timer1() {
16     Timer timer = new Timer();
17     timer.schedule(new TimerTask() {
18       public void run() {
19         System.out.println("-------設定要指定任務--------");
20       }
21     }, 2000);// 設定指定的時間time,此處為2000毫秒
22   }
23  
24   // 第二種方法:設定指定任務task在指定延遲delay后進行固定延遲peroid的執行
25   // schedule(TimerTask task, long delay, long period)
26   public static void timer2() {
27     Timer timer = new Timer();
28     timer.schedule(new TimerTask() {
29       public void run() {
30         System.out.println("-------設定要指定任務--------");
31       }
32     }, 1000, 5000);
33   }
34  
35   // 第三種方法:設定指定任務task在指定延遲delay后進行固定頻率peroid的執行。
36   // scheduleAtFixedRate(TimerTask task, long delay, long period)
37   public static void timer3() {
38     Timer timer = new Timer();
39     timer.scheduleAtFixedRate(new TimerTask() {
40       public void run() {
41         System.out.println("-------設定要指定任務--------");
42       }
43     }, 1000, 2000);
44   }
45    
46   // 第四種方法:安排指定的任務task在指定的時間firstTime開始進行重復的固定速率period執行.
47   // Timer.scheduleAtFixedRate(TimerTask task,Date firstTime,long period)
48   public static void timer4() {
49     Calendar calendar = Calendar.getInstance();
50     calendar.set(Calendar.HOUR_OF_DAY, 12); // 控制時
51     calendar.set(Calendar.MINUTE, 0);    // 控制分
52     calendar.set(Calendar.SECOND, 0);    // 控制秒
53  
54     Date time = calendar.getTime();     // 得出執行任務的時間,此處為今天的12:00:00
55  
56     Timer timer = new Timer();
57     timer.scheduleAtFixedRate(new TimerTask() {
58       public void run() {
59         System.out.println("-------設定要指定任務--------");
60       }
61     }, time, 1000 * 60 * 60 * 24);// 這里設定將延時每天固定執行
62   }
63 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM