国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java 定時器(Timer,TimerTask)詳解及實例代碼

2019-11-26 13:16:38
字體:
來源:轉載
供稿:網友

 Java 定時器

在JAVA中實現定時器功能要用的二個類是Timer,TimerTask

Timer類是用來執行任務的類,它接受一個TimerTask做參數

Timer有兩種執行任務的模式,最常用的是schedule,它可以以兩種方式執行任務:1:在某個時間(Data),2:在某個固定的時間之后(int delay).這兩種方式都可以指定任務執行的頻率,本文有二個例子,一個是簡單的一個是用了內部類

1.簡單實例

  先寫一個類

public class TimeTest {public static void main(String[] args) {     Timer timer = new Timer();   timer.schedule(new MyTask(),1000,2000);}

然后再寫個類

public class MyTask extends TimerTask{  @Override  public void run() { System.out.println("開始運行");      }}

這樣就可以完成一個簡單的定時器,但是還有一種方法就是把這二個類寫入到一個類中,也就是內部類了

2.內部類

public class SerchRun {  protected static void startRun(){    Timer timer = new Timer();     TimerTask task =new TimerTask(){       public void run(){         System.out.println("開始運行"); //在這寫你要調用的方法       }     };   timer.scheduleAtFixedRate(task, new Date(),2000);//當前時間開始起動 每次間隔2秒再啟動   // timer.scheduleAtFixedRate(task, 1000,2000); // 1秒后啟動 每次間隔2秒再啟動            }    public static void main(String[] args) {   SerchRun.startRun();  }}

 schedule和scheduleAtFixedRate的區別在于,如果指定開始執行的時間在當前系統運行時間之前,scheduleAtFixedRate會把已經過去的時間也作為周期執行,而schedule不會把過去的時間算上。

比如:

SimpleDateFormat fTime = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Date d1 = fTime.parse("2005/12/30 14:10:00");  t.scheduleAtFixedRate(new TimerTask(){  public void run()  {    System.out.println("this is task you do6");  } },d1,3*60*1000);

間隔時間是3分鐘,指定開始時間是2005/12/30 14:10:00,如果我在14:17:00分執行這個程序,那么會立刻打印3次

this is task you do6   //14:10this is task you do6   //14:13this is task you do6   //14:16

并且注意,下一次執行是在14:19 而不是 14:20。就是說是從指定的開始時間開始計時,而不是從執行時間開始計時。

但是上面如果用schedule方法,間隔時間是3分鐘,指定開始時間是2005/12/30 14:10:00,那么在14:17:00分執行這個程序,則立即執行程序一次。并且下一次的執行時間是 14:20,而不是從14:10開始算的周期(14:19)。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 莱阳市| 九江县| 彰化市| 环江| 平顶山市| 土默特左旗| 桃园市| 山阴县| 贡嘎县| 天全县| 肇源县| 炎陵县| 乌苏市| 营口市| 静海县| 霍林郭勒市| 莱州市| 胶南市| 石家庄市| 清远市| 上饶市| 社会| 竹北市| 米林县| 新源县| 沈丘县| 霍林郭勒市| 宁城县| 普宁市| 丹东市| 扬中市| 项城市| 枣强县| 上犹县| 天峨县| 崇义县| 化州市| 阿坝| 罗定市| 繁昌县| 江油市|