tbwshc

          Java中Timer和TimerTask的使用

             java.util.Timer定時器,實際上是個線程,定時調度所擁有的TimerTasks.

            一個TimerTask實際上就是一個擁有run方法的類,需要定時執行的代碼放到run方法體內,TimerTask一般是以匿名類的方式創建。

            一個完整的Timer:

            [java]

            java.util.Timer timer = new java.util.Timer(true);

            // true 說明這個timer以daemon方式運行(優先級低,

            // 程序結束timer也自動結束),注意,javax.swing

            // 包中也有一個Timer類,如果import中用到swing包,

            // 要注意名字的沖突。

            TimerTask task = new TimerTask() {

            public void run() {

            … //每次需要執行的代碼放到這里面。

            }

            };

            //以下是幾種調度task的方法:

            timer.schedule(task, time);

            // time為Date類型:在指定時間執行一次。

            timer.schedule(task, firstTime, period);

            // firstTime為Date類型,period為long

            // 從firstTime時刻開始,每隔period毫秒執行一次。

            timer.schedule(task, delay)

            // delay 為long類型:從現在起過delay毫秒執行一次

            timer.schedule(task, delay, period)

            // delay為long,period為long:從現在起過delay毫秒以后,每隔period

            // 毫秒執行一次。

            java.util.Timer timer = new java.util.Timer(true);

            // true 說明這個timer以daemon方式運行(優先級低,

            // 程序結束timer也自動結束),tb注意,javax.swing

            // 包中也有一個Timer類,如果import中用到swing包,

            // 要注意名字的沖突。

            TimerTask task = new TimerTask() {

            public void run() {

            … //每次需要執行的代碼放到這里面。
           }

            };

            //以下是幾種調度task的方法:

            timer.schedule(task, time);

            // time為Date類型:在指定時間執行一次。

            timer.schedule(task, firstTime, period);

            // firstTime為Date類型,period為long

            // 從firstTime時刻開始,每隔period毫秒執行一次。

            timer.schedule(task, delay)

            // delay 為long類型:從現在起過delay毫秒執行一次

            timer.schedule(task, delay, period)

            // delay為long,period為long:從現在起過delay毫秒以后,每隔period

            // 毫秒執行一次。

            下面是一個tbw完整的例子,由兩個類組成,一個定制任務,一個調用java.util.Timer

            定制任務:

            [java]

            import java.util.Timer;

            public class TimerTaskTest extends java.util.TimerTask{

            @Override

            public void run() {

            // TODO Auto-generated method stub

            System.out.println("start");

            }

            }

            import java.util.Timer;

            public class TimerTaskTest extends java.util.TimerTask{

            @Override

            public void run() {

            // TODO Auto-generated method stub

            System.out.println("start");

            }

            }

            2.調用java.util.Timer

            [java]

            import java.util.Timer;

            public class Test {

            public static void main(String[] args){

            Timer timer = new Timer();

            timer.schedule(new TimerTaskTest(), 1000, 2000);

            }

            }

            import java.util.Timer;

            public class Test {

            public static void main(String[] args){

            Timer timer = new Timer();

            timer.schedule(new TimerTaskTest(), 1000, 2000);

            }

            }

            根據上面的介紹,便可以在1秒后,每隔2秒執行一次程序。

          posted on 2013-09-17 15:17 chen11-1 閱讀(204) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 易门县| 进贤县| 农安县| 涡阳县| 新乡县| 东港市| 长葛市| 金昌市| 安新县| 沙田区| 建宁县| 溧阳市| 蛟河市| 无极县| 静宁县| 长宁县| 通许县| 万盛区| 望奎县| 沛县| 剑河县| 佛冈县| 卓资县| 渭南市| 郯城县| 永清县| 万宁市| 乌兰察布市| 寿光市| 弥渡县| 磐石市| 竹溪县| 马关县| 特克斯县| 厦门市| 濮阳市| 孝感市| 新安县| 石棉县| 剑阁县| 边坝县|