Java定時器的使用
定時器類Timer在java.util包中。使用時,先實例化,然后使用實例的schedule(TimerTask task, long delay)方法,設(shè)定指定的任務(wù)task在指定的延遲delay后執(zhí)行。定時器任務(wù)類TimerTask是抽象類,繼承并重寫其run()方法,可實現(xiàn)具體任務(wù)。
schedule(TimerTask task, Date time)設(shè)定指定任務(wù)task在指定時間time執(zhí)行。
cancel()方法結(jié)束這個定時器。
schedule(TimerTask task, long delay, long period)方法設(shè)定指定任務(wù)task在指定延遲delay后進(jìn)行固定延遲peroid的執(zhí)行。
scheduleAtFixedRate(TimerTask task, long delay, long period)方法設(shè)定指定任務(wù)task在指定延遲delay后進(jìn)行固定頻率peroid的執(zhí)行。
要實現(xiàn)一個定時任務(wù),運用java中的Timer和TimerTask類可以非常容易實現(xiàn)實時調(diào)用處理函數(shù)。這兩個類使用起來非常方便,可以完成我們對定時器的絕大多數(shù)需要。
看個簡單的例子:
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秒后執(zhí)行此任務(wù),每次間隔2秒,如果傳遞一個Data參數(shù),就可以在某個固定的時間執(zhí)行這個任務(wù). while(true){//這個是用來停止此任務(wù)的,否則就一直循環(huán)執(zhí)行此任務(wù)了 try { int ch = System.in.read(); if(ch-'c'==0){ timer.cancel();//使用這個方法退出任務(wù) } } 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("________"); } } } |