java 定时器delay_技术贴-java 定时器
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
==============
java 定時器可以用作,定時刷新緩存等。。。。。。。。。。。 timer.schedule(task, firstTime, period); task參數是,TimerTask 類,在包:import java.util.TimerTask .使用者要繼承該類,并實現 public void run() 方法,因為 TimerTask 類 實現了 Runnable 接口。 firstTime參數是,當你調用該方法后,該方法必然會調用 TimerTask 類 TimerTask 類 中的 run() 方法,這個參數就是這兩者之間的差值,轉換成漢語的意思就是說,用戶調用 schedule() 方法后,要等待這么長的時間才可以第一次執行 run() 方法。 period參數是,第一次調用之后,從第二次開始每隔多長的時間調用一次 run() 方法。 schedule和scheduleAtFixedRate的區別在于,如果指定開始執行的時間在當前系統運行時間之前,scheduleAtFixedRate會把已經過去的時間也作為周期執行,而schedule不會把過去的時間算上。 schedule import java.util.Timer;
import java.util.TimerTask;
public class TestTimer {
static Timer timer = null;
public static void main(String[] args) {
timer = new Timer();
System.out.println("-----------定時間器已經啟動。。。。。。");
timer.schedule(new TimerTask() {
@Override
public void run() {
System.out.println("運行我了哦!!!");
}
}, 0, 5*1000);
}
}
scheduleAtFixedRate import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Timer;
import java.util.TimerTask;
public class TestTimer { public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
try {
Date datetime = sdf .parse("2007/07/31 23:59:00");
timer = new Timer();
System.out.println("-----------定時間器已經啟動。。。。。。");
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
System.out.println("scheduleAtFixedRate -----test");
}
}, datetime , 5*1000);
} catch (ParseException e) {
e.printStackTrace();
}
}
=====================
定時器類Timer在java.util包中。使用時,先實例化,然后使用實例的schedule(TimerTask task, long delay)方法,設定指定的任務task在指定的延遲delay后執行。定時器任務類TimerTask是抽象類,繼承并重寫其run()方法,可實現具體任務。 schedule(TimerTask task, Date time)設定指定任務task在指定時間time執行。 cancel()方法結束這個定時器。 schedule(TimerTask task, long delay, long period)方法設定指定任務task在指定延遲delay后進行固定延遲peroid的執行。 scheduleAtFixedRate(TimerTask task, long delay, long period)方法設定指定任務task在指定延遲delay后進行固定頻率peroid的執行。要實現一個定時任務,運用java中的Timer和TimerTask類可以非常容易實現實時調用處理函數。這兩個類使用起來非常方便,可以完成我們對定時器的絕大多數需要。看個簡單的例子: import java.io.IOException; import java.util.Timer; public class TimerTest { public static void main(String[] args){ Timer timer = new Timer(); timer.schedule(new MyTask(), 1000, 2000);//在1秒后執行此任務,每次間隔2秒,如果傳遞一個Data參數,就可以在某個固定的時間執行這個任務. while(true){//這個是用來停止此任務的,否則就一直循環執行此任務了 try { int ch = System.in.read(); if(ch-'c'==0){ timer.cancel();//使用這個方法退出任務 } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } static class MyTask extends java.util.TimerTask{ @Override public void run() { // TODO Auto-generated method stub System.out.println("________"); } } }
總結
以上是生活随笔為你收集整理的java 定时器delay_技术贴-java 定时器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java调用存储过程 sql serve
- 下一篇: java用beaninfo_java 可