成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java定時器Timer

shiina / 2481人閱讀

摘要:定時器概述主要用于線程里指定時間或周期運行任務(wù)。同時指定關(guān)聯(lián)線程的名稱和是否作為。以當(dāng)前時間為基準(zhǔn),延遲指定的毫秒后,再按指定的時間間隔地?zé)o限次數(shù)的執(zhí)行任務(wù)。使用示例執(zhí)行結(jié)果說明指定的之間早于當(dāng)前時間,則立刻執(zhí)行。

Java定時器Timer 概述

主要用于Java線程里指定時間或周期運行任務(wù)。Timer是線程安全的,但不提供實時性(real-time)保證。

構(gòu)造函數(shù) Timer()

默認(rèn)構(gòu)造函數(shù)。

Timer(boolean)

指定關(guān)聯(lián)線程是否作為daemon線程。

Timer(String)

指定關(guān)聯(lián)線程的名稱。

Timer(String, boolean)

同時指定關(guān)聯(lián)線程的名稱和是否作為daemon。

schdule方法 schedule(TimerTask task, long delay)

以當(dāng)前時間為基準(zhǔn),延遲指定的毫秒后執(zhí)行一次TimerTask任務(wù)。

schedule(TimerTask task, Date time)

在指定的日期執(zhí)行一次TimerTask任務(wù)。

如果日期time早于當(dāng)前時間,則立刻執(zhí)行。

使用示例

public class Demo {
    private static Timer timer = new Timer();

    public static class MyTask extends TimerTask {
        @Override
        public void run() {
            System.out.println("Run Time:" + new Date().toString());
        }
    }
    
    public static void main(String[] args) {
        try {
            MyTask task = new MyTask();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String dateStr = "2016-12-27 14:36:00";
            Date date = sdf.parse(dateStr);
            System.out.println("Date = " + date.toString() + " NowTime = " + new Date().toString());
            timer.schedule(task, date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

執(zhí)行結(jié)果

Date = Tue Dec 27 14:36:00 CST 2016 NowTime = Tue Dec 27 21:28:04 CST 2016
Run Time:Tue Dec 27 21:28:04 CST 2016

說明是立刻執(zhí)行。

schedule(TimerTask task, long delay, long period)

以當(dāng)前時間為基準(zhǔn),延遲指定的毫秒后,再按指定的時間間隔地?zé)o限次數(shù)的執(zhí)行TimerTask任務(wù)。(fixed-delay execution)

使用示例

public class Demo {
    private static Timer timer = new Timer();

    public static class MyTask extends TimerTask {
        @Override
        public void run() {
            System.out.println("Run Time: " + new Date().toString());
        }
    }

    public static void main(String[] args) {
        MyTask task = new MyTask();
        System.out.println("Now Time: " + new Date().toString());
        timer.schedule(task, 3000, 5000);
    }
}

執(zhí)行結(jié)果

Now Time: Tue Dec 27 21:34:59 CST 2016
Run Time: Tue Dec 27 21:35:02 CST 2016
Run Time: Tue Dec 27 21:35:07 CST 2016
Run Time: Tue Dec 27 21:35:12 CST 2016
Run Time: Tue Dec 27 21:35:17 CST 2016

說明以當(dāng)前基準(zhǔn)時間延遲3秒后執(zhí)行一次,以后按指定間隔時間5秒無限次數(shù)的執(zhí)行。

schedule(TimerTask task, Date firstTime, long period)

在指定的日期之后,按指定的時間間隔地?zé)o限次數(shù)的執(zhí)行TimerTask任務(wù)。(fixed-delay execution)

如果日期firstTime早于當(dāng)前時間,則立刻執(zhí)行,且不執(zhí)行在時間差內(nèi)的任務(wù)。

使用示例

public class Demo {
    private static Timer timer = new Timer();

    public static class MyTask extends TimerTask {
        @Override
        public void run() {
            System.out.println("Run Time:" + new Date().toString());
        }

        public static void main(String[] args) {
            try {
                MyTask task = new MyTask();
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String dateStr = "2016-12-27 14:36:00";
                Date date = sdf.parse(dateStr);
                System.out.println("Date = " + date.toString() + " NowTime = " + new Date().toString());
                timer.schedule(task, date, 3000);
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }
    }
}

執(zhí)行結(jié)果

Date = Tue Dec 27 14:36:00 CST 2016 NowTime = Tue Dec 27 21:43:30 CST 2016
Run Time:Tue Dec 27 21:43:30 CST 2016
Run Time:Tue Dec 27 21:43:33 CST 2016
Run Time:Tue Dec 27 21:43:36 CST 2016

說明指定的之間早于當(dāng)前時間,則立刻執(zhí)行,不會補充時間差內(nèi)的任務(wù)

scheduleAtFixedRate方法 scheduleAtFixedRate(TimerTask task, long delay, long period)

以當(dāng)前時間為基準(zhǔn),延遲指定的毫秒后,再按指定的時間間隔周期性地?zé)o限次數(shù)的執(zhí)行TimerTask任務(wù)。(fixed-rate execution)

使用示例

public class Demo {
    private static Timer timer = new Timer();

    public static class MyTask extends TimerTask {
        @Override
        public void run() {
            System.out.println("Run Time: " + new Date().toString());
        }
    }

    public static void main(String[] args) {
        MyTask task = new MyTask();
        System.out.println("Now Time: " + new Date().toString());
        timer.scheduleAtFixedRate(task, 3000, 5000);
    }
}

執(zhí)行結(jié)果

Now Time: Tue Dec 27 21:58:03 CST 2016
Run Time: Tue Dec 27 21:58:06 CST 2016
Run Time: Tue Dec 27 21:58:11 CST 2016
Run Time: Tue Dec 27 21:58:16 CST 2016
Run Time: Tue Dec 27 21:58:21 CST 2016

說明以當(dāng)前基準(zhǔn)時間延遲3秒后執(zhí)行一次,以后按指定間隔時間5秒無限次數(shù)的執(zhí)行。

scheduleAtFixedRate(TimerTask task, Date firstTime, long period)

在指定的日期之后,按指定的時間間隔周期性地?zé)o限次數(shù)的執(zhí)行TimerTask任務(wù)。(fixed-rate execution)

如果日期firstTime早于當(dāng)前時間,則立即執(zhí)行,并補充性的執(zhí)行在時間差內(nèi)的任務(wù)。

使用示例

public class Demo {
    private static Timer timer = new Timer();

    public static class MyTask extends TimerTask {
        @Override
        public void run() {
            System.out.println("Run Time:" + new Date().toString());
        }

        public static void main(String[] args) {
            try {
                MyTask task = new MyTask();
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String dateStr = "2016-12-27 22:02:00";
                Date date = sdf.parse(dateStr);
                System.out.println("Date = " + date.toString() + " NowTime = " + new Date().toString());
                timer.scheduleAtFixedRate(task, date, 5000);
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }
    }
}

執(zhí)行結(jié)果

Date = Tue Dec 27 22:02:00 CST 2016 NowTime = Tue Dec 27 22:02:54 CST 2016
Run Time:Tue Dec 27 22:02:54 CST 2016
Run Time:Tue Dec 27 22:02:54 CST 2016
Run Time:Tue Dec 27 22:02:54 CST 2016
Run Time:Tue Dec 27 22:02:54 CST 2016
Run Time:Tue Dec 27 22:02:54 CST 2016
Run Time:Tue Dec 27 22:02:54 CST 2016
Run Time:Tue Dec 27 22:02:54 CST 2016
Run Time:Tue Dec 27 22:02:54 CST 2016
Run Time:Tue Dec 27 22:02:54 CST 2016
Run Time:Tue Dec 27 22:02:54 CST 2016
Run Time:Tue Dec 27 22:02:54 CST 2016
Run Time:Tue Dec 27 22:02:55 CST 2016
Run Time:Tue Dec 27 22:03:00 CST 2016
Run Time:Tue Dec 27 22:03:05 CST 2016

說明指定的之間早于當(dāng)前時間,則立刻執(zhí)行。

在時間22:02:00--22:02:54內(nèi)大約有11個5秒間隔,則優(yōu)先補充性的執(zhí)行在時間差內(nèi)的任務(wù),然后在22:02:55補充完畢(執(zhí)行12次。ps:0-55秒?yún)^(qū)間段內(nèi)首位都算上,正好觸發(fā)12次),此后每隔5秒執(zhí)行一次定時任務(wù)。

執(zhí)行任務(wù)延時對比之 schedule 和 scheduleAtFixedRate schedule不延時

使用示例

public class Demo {
    private static Timer timer = new Timer();
    private static int runCount = 0;

    public static class MyTask extends TimerTask {
        @Override
        public void run() {
            try {
                System.out.println("Begin Run Time: " + new Date().toString());
                Thread.sleep(3000);
                System.out.println("End Run Time: " + new Date().toString());
                runCount++;
                if (runCount == 3) {
                    timer.cancel();
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

        }
    }

    public static void main(String[] args) {
        try {
            MyTask task = new MyTask();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String dateStr = "2016-12-27 14:36:00";
            Date date = sdf.parse(dateStr);
            System.out.println("Date = " + date.toString() + " NowTime = " + new Date().toString());
            timer.schedule(task, date, 5000);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

執(zhí)行結(jié)果

早于當(dāng)前基準(zhǔn)時間

Date = Tue Dec 27 14:36:00 CST 2016 NowTime = Tue Dec 27 22:23:37 CST 2016
Begin Run Time: Tue Dec 27 22:23:37 CST 2016
End Run Time: Tue Dec 27 22:23:40 CST 2016
Begin Run Time: Tue Dec 27 22:23:42 CST 2016
End Run Time: Tue Dec 27 22:23:45 CST 2016
Begin Run Time: Tue Dec 27 22:23:47 CST 2016
End Run Time: Tue Dec 27 22:23:50 CST 2016

Process finished with exit code 0

晚于當(dāng)前基準(zhǔn)時間

Date = Tue Dec 27 22:42:00 CST 2016 NowTime = Tue Dec 27 22:41:54 CST 2016
Begin Run Time: Tue Dec 27 22:42:00 CST 2016
End Run Time: Tue Dec 27 22:42:03 CST 2016
Begin Run Time: Tue Dec 27 22:42:05 CST 2016
End Run Time: Tue Dec 27 22:42:08 CST 2016
Begin Run Time: Tue Dec 27 22:42:10 CST 2016
End Run Time: Tue Dec 27 22:42:13 CST 2016

Process finished with exit code 0

不管早還是晚于基準(zhǔn)時間,都不進行補償,下一次任務(wù)的執(zhí)行時間參考的是上一次任務(wù)的開始時間點來計算。

schedule延時

使用示例

public class Demo {
    private static Timer timer = new Timer();
    private static int runCount = 0;

    public static class MyTask extends TimerTask {
        @Override
        public void run() {
            try {
                System.out.println("Begin Run Time: " + new Date().toString());
                Thread.sleep(5000);
                System.out.println("End Run Time: " + new Date().toString());
                runCount++;
                if (runCount == 3) {
                    timer.cancel();
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

        }
    }

    public static void main(String[] args) {
        try {
            MyTask task = new MyTask();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String dateStr = "2016-12-27 22:42:00";
            Date date = sdf.parse(dateStr);
            System.out.println("Date = " + date.toString() + " NowTime = " + new Date().toString());
            timer.schedule(task, date, 3000);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

執(zhí)行結(jié)果

早于當(dāng)前基準(zhǔn)時間

Date = Tue Dec 27 22:42:00 CST 2016 NowTime = Tue Dec 27 22:45:17 CST 2016
Begin Run Time: Tue Dec 27 22:45:17 CST 2016
End Run Time: Tue Dec 27 22:45:22 CST 2016
Begin Run Time: Tue Dec 27 22:45:22 CST 2016
End Run Time: Tue Dec 27 22:45:27 CST 2016
Begin Run Time: Tue Dec 27 22:45:27 CST 2016
End Run Time: Tue Dec 27 22:45:32 CST 2016

Process finished with exit code 0

晚于當(dāng)前基準(zhǔn)時間

Date = Tue Dec 27 22:47:00 CST 2016 NowTime = Tue Dec 27 22:46:27 CST 2016
Begin Run Time: Tue Dec 27 22:47:00 CST 2016
End Run Time: Tue Dec 27 22:47:05 CST 2016
Begin Run Time: Tue Dec 27 22:47:05 CST 2016
End Run Time: Tue Dec 27 22:47:10 CST 2016
Begin Run Time: Tue Dec 27 22:47:10 CST 2016
End Run Time: Tue Dec 27 22:47:15 CST 2016

Process finished with exit code 0

不管早還是晚于當(dāng)前基準(zhǔn)時間,都不進行補償,下一次任務(wù)的執(zhí)行時間都是參考上一次任務(wù)結(jié)束的時間點來計算。

scheduleAtFixedRate不延時

使用示例

public class Demo {
    private static Timer timer = new Timer();
    private static int runCount = 0;

    public static class MyTask extends TimerTask {
        @Override
        public void run() {
            try {
                System.out.println("Begin Run Time: " + new Date().toString());
                Thread.sleep(3000);
                System.out.println("End Run Time: " + new Date().toString());
                runCount++;
                if (runCount == 1000) {
                    timer.cancel();
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) {
        try {
            MyTask task = new MyTask();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String dateStr = "2016-12-27 22:51:42";
            Date date = sdf.parse(dateStr);
            System.out.println("Date = " + date.toString() + " NowTime = " + new Date().toString());
            timer.scheduleAtFixedRate(task, date, 5000);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

執(zhí)行結(jié)果

早于當(dāng)前基準(zhǔn)時間

Date = Tue Dec 27 22:51:42 CST 2016 NowTime = Tue Dec 27 22:51:57 CST 2016
Begin Run Time: Tue Dec 27 22:51:57 CST 2016
End Run Time: Tue Dec 27 22:52:00 CST 2016
Begin Run Time: Tue Dec 27 22:52:00 CST 2016
End Run Time: Tue Dec 27 22:52:03 CST 2016
Begin Run Time: Tue Dec 27 22:52:03 CST 2016
End Run Time: Tue Dec 27 22:52:06 CST 2016
Begin Run Time: Tue Dec 27 22:52:06 CST 2016
End Run Time: Tue Dec 27 22:52:09 CST 2016
Begin Run Time: Tue Dec 27 22:52:09 CST 2016
End Run Time: Tue Dec 27 22:52:12 CST 2016
Begin Run Time: Tue Dec 27 22:52:12 CST 2016
End Run Time: Tue Dec 27 22:52:15 CST 2016
Begin Run Time: Tue Dec 27 22:52:15 CST 2016
End Run Time: Tue Dec 27 22:52:18 CST 2016
Begin Run Time: Tue Dec 27 22:52:18 CST 2016
End Run Time: Tue Dec 27 22:52:21 CST 2016
Begin Run Time: Tue Dec 27 22:52:22 CST 2016
End Run Time: Tue Dec 27 22:52:25 CST 2016
Begin Run Time: Tue Dec 27 22:52:27 CST 2016
End Run Time: Tue Dec 27 22:52:30 CST 2016
Begin Run Time: Tue Dec 27 22:52:32 CST 2016
End Run Time: Tue Dec 27 22:52:35 CST 2016
Begin Run Time: Tue Dec 27 22:52:37 CST 2016
End Run Time: Tue Dec 27 22:52:40 CST 2016
Begin Run Time: Tue Dec 27 22:52:42 CST 2016
End Run Time: Tue Dec 27 22:52:45 CST 2016
Begin Run Time: Tue Dec 27 22:52:47 CST 2016
End Run Time: Tue Dec 27 22:52:50 CST 2016
Begin Run Time: Tue Dec 27 22:52:52 CST 2016
End Run Time: Tue Dec 27 22:52:55 CST 2016
Begin Run Time: Tue Dec 27 22:52:57 CST 2016
End Run Time: Tue Dec 27 22:53:00 CST 2016

Process finished with exit code 0

晚于當(dāng)前基準(zhǔn)時間

Date = Tue Dec 27 22:37:00 CST 2016 NowTime = Tue Dec 27 22:36:06 CST 2016
Begin Run Time: Tue Dec 27 22:37:00 CST 2016
End Run Time: Tue Dec 27 22:37:03 CST 2016
Begin Run Time: Tue Dec 27 22:37:05 CST 2016
End Run Time: Tue Dec 27 22:37:08 CST 2016
Begin Run Time: Tue Dec 27 22:37:10 CST 2016
End Run Time: Tue Dec 27 22:37:13 CST 2016

Process finished with exit code 0

不延時的情況下,當(dāng)早于基準(zhǔn)時間時,時間差內(nèi)的執(zhí)行任務(wù)未補償完時,下一次執(zhí)行任務(wù)的時間參考的是上一次執(zhí)行任務(wù)的結(jié)束時間;一旦補償完畢(注意粗體時間點),下一次執(zhí)行任務(wù)的時間參考的是上一次執(zhí)行任務(wù)的開始時間;當(dāng)晚于基準(zhǔn)時間時,下一次執(zhí)行任務(wù)的時間參考的是上一次執(zhí)行任務(wù)的開始時間。

scheduleAtFixedRate延時

使用示例

public class Demo {
    private static Timer timer = new Timer();
    private static int runCount = 0;

    public static class MyTask extends TimerTask {
        @Override
        public void run() {
            try {
                System.out.println("Begin Run Time: " + new Date().toString());
                Thread.sleep(5000);
                System.out.println("End Run Time: " + new Date().toString());
                runCount++;
                if (runCount == 3) {
                    timer.cancel();
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

        }
    }

    public static void main(String[] args) {
        try {
            MyTask task = new MyTask();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String dateStr = "2016-12-27 22:28:00";
            Date date = sdf.parse(dateStr);
            System.out.println("Date = " + date.toString() + " NowTime = " + new Date().toString());
            timer.scheduleAtFixedRate(task, date, 3000);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

執(zhí)行結(jié)果

早于當(dāng)前基準(zhǔn)時間

Date = Tue Dec 27 23:01:00 CST 2016 NowTime = Tue Dec 27 23:01:19 CST 2016
Begin Run Time: Tue Dec 27 23:01:19 CST 2016
End Run Time: Tue Dec 27 23:01:24 CST 2016
Begin Run Time: Tue Dec 27 23:01:24 CST 2016
End Run Time: Tue Dec 27 23:01:29 CST 2016
Begin Run Time: Tue Dec 27 23:01:29 CST 2016
End Run Time: Tue Dec 27 23:01:34 CST 2016
Begin Run Time: Tue Dec 27 23:01:34 CST 2016
End Run Time: Tue Dec 27 23:01:39 CST 2016

晚于當(dāng)前基準(zhǔn)時間

Date = Tue Dec 27 22:28:00 CST 2016 NowTime = Tue Dec 27 22:27:55 CST 2016
Begin Run Time: Tue Dec 27 22:28:00 CST 2016
End Run Time: Tue Dec 27 22:28:05 CST 2016
Begin Run Time: Tue Dec 27 22:28:05 CST 2016
End Run Time: Tue Dec 27 22:28:10 CST 2016
Begin Run Time: Tue Dec 27 22:28:10 CST 2016
End Run Time: Tue Dec 27 22:28:15 CST 2016

Process finished with exit code 0

延時的情況下,即使是早于基準(zhǔn)時間,由于延時效應(yīng),根本不可能補償完畢時間差內(nèi)的執(zhí)行任務(wù),故而在延時的情況下,下一次任務(wù)的執(zhí)行時間都是參考上一次任務(wù)結(jié)束的時間來計算。

對比總結(jié)
執(zhí)行任務(wù)不延時 執(zhí)行任務(wù)延時
早于當(dāng)前基準(zhǔn)時間 schedule:下一次任務(wù)的執(zhí)行時間參考的是上一次任務(wù)的開始時間來計算。 scheduleAtFixedRate:當(dāng)早于基準(zhǔn)時間時,時間差內(nèi)的執(zhí)行任務(wù)未補償完時,下一次執(zhí)行任務(wù)的時間參考的是上一次任務(wù)的結(jié)束時間;一旦補償完畢,下一次執(zhí)行任務(wù)的時間參考上一次任務(wù)的開始時間來計算。 二者一樣。下一次任務(wù)的執(zhí)行時間都是參考上一次任務(wù)的結(jié)束時間來計算。
晚于當(dāng)前基準(zhǔn)時間 二者一樣。下一次任務(wù)的執(zhí)行時間參考的是上一次任務(wù)的開始時間來計算。 二者一樣。下一次任務(wù)的執(zhí)行時間都是參考上一次任務(wù)的結(jié)束時間來計算。

注意:scheduleAtFixedRate示例中firstTime是有區(qū)別的,而結(jié)果證明是有補償性操作的。

(END)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/66446.html

相關(guān)文章

  • Java 定時任務(wù)系列(1)- Java原生支持

    摘要:第一次在指定時間點執(zhí)行任務(wù),之后每隔時間調(diào)用任務(wù)一次。定時器已啟動每隔小時已經(jīng)添加任務(wù)調(diào)度表這個方法在應(yīng)用服務(wù)被移除,沒有能力再接受請求的時候被調(diào)用。 1、普通thread實現(xiàn) 這是最常見的,創(chuàng)建一個thread,然后讓它在while循環(huán)里一直運行著,通過sleep方法來達(dá)到定時任務(wù)的效果。這樣可以快速簡單的實現(xiàn),代碼如下: public class Task1 { public ...

    melody_lql 評論0 收藏0
  • 慕課網(wǎng)_《Java定時任務(wù)調(diào)度工具詳解之Timer篇》學(xué)習(xí)總結(jié)

    時間:2017年05月24日星期三說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:無個人學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:課程介紹 1-1 課程介紹 什么是定時任務(wù)調(diào)度 基于給定的時間點,給定的時間間隔或者給定的執(zhí)行次數(shù)自動執(zhí)行的任務(wù) 在Java中的定時調(diào)度工具 Timer:小弟,能實現(xiàn)日常60%的定...

    wind5o 評論0 收藏0
  • Java時器Timer學(xué)習(xí)一

    摘要:類是一個定時任務(wù)類,該類實現(xiàn)了接口,而且是一個抽象類說明類是一個抽象類,由安排為一次執(zhí)行或重復(fù)執(zhí)行的任務(wù)。定時器實例有多種構(gòu)造方法創(chuàng)建一個新計時器。 Timer 的定義 有且僅有一個后臺線程對多個業(yè)務(wù)進行定時定頻的調(diào)度。Timer 類可以保證多個線程可以共享單個 Timer 對象而無需進行外部同步,所以 Timer 類是線程安全的。 核心的兩個類 java.util.Timer 和 ...

    AaronYuan 評論0 收藏0
  • Java時器Timer學(xué)習(xí)二

    摘要:代碼實例獲取當(dāng)前時間按照指定的格式輸出設(shè)置成秒之前的時間使用來執(zhí)行控制臺輸出方法總結(jié)我們可以看到實際的效果是在啟動執(zhí)行的時候,會立馬執(zhí)行次就是為了追趕已經(jīng)過去的秒。 方法名稱 schedule() 和 scheduleAtFixedRate() 的區(qū)別 兩種情況看區(qū)別 首次計劃執(zhí)行的時間早于當(dāng)前時間 比如說:當(dāng)前時間是 11:06, 但是首次計劃執(zhí)行的時間應(yīng)該為: 11:00 任務(wù)執(zhí)行...

    nemo 評論0 收藏0
  • Java定時任務(wù)調(diào)度工具】Timer

    摘要:筆記來源定時任務(wù)調(diào)度基于給定的時間點,給定的時間間隔或者給定的執(zhí)行次數(shù)自動執(zhí)行的任務(wù)。可安排任務(wù)執(zhí)行一次,或者定期重復(fù)執(zhí)行。有且僅有一個后臺線程對多個業(yè)務(wù)線程進行定時定頻率的調(diào)度。 筆記來源:IMOOC Java Timer 定時任務(wù)調(diào)度 基于給定的時間點,給定的時間間隔或者給定的執(zhí)行次數(shù)自動執(zhí)行的任務(wù)。 Timer 定義 一種工具,線程用其安排以后在后臺線程中執(zhí)行的任務(wù)??砂才湃?..

    Rindia 評論0 收藏0
  • Java 多線程編程核心技術(shù)5—時器Timer

    摘要:如果執(zhí)行任務(wù)的時間早于當(dāng)前時間,則立即執(zhí)行任務(wù)。其他任務(wù)不受影響。類中的方法作用是將任務(wù)隊列中全部的任務(wù)進行清空。全部任務(wù)都被清除,并且進程被銷毀。類中的方法有時并不一定會停止計劃任務(wù),而是正常執(zhí)行。 Timer類的主要作用就是設(shè)置計劃任務(wù),但封裝任務(wù)的類卻是TimerTask類,執(zhí)行計劃任務(wù)的代碼要放入TimerTask的子類中,因為TimerTask是一個抽象類。 創(chuàng)建1個Tim...

    hqman 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<