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)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 怀集县| 大竹县| 美姑县| 博白县| 宜良县| 濉溪县| 尚义县| 喀什市| 兴城市| 武胜县| 凤山市| 济宁市| 融水| 乡宁县| 莒南县| 揭阳市| 蓬溪县| 临夏县| 乐业县| 莆田市| 永和县| 襄樊市| 宁陵县| 桦甸市| 武威市| 周至县| 公安县| 吐鲁番市| 红原县| 辽阳市| 综艺| 通江县| 高雄市| 浦江县| 营山县| 永靖县| 肥乡县| 如皋市| 淄博市| 平凉市| 星座|