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

資訊專欄INFORMATION COLUMN

(二十)java多線程之ScheduledThreadPoolExecutor

pkwenda / 855人閱讀

摘要:本人郵箱歡迎轉(zhuǎn)載轉(zhuǎn)載請(qǐng)注明網(wǎng)址代碼已經(jīng)全部托管有需要的同學(xué)自行下載引言提供的線程池還有一個(gè)那就是任務(wù)調(diào)度線程池它其實(shí)是的一個(gè)子類理論我們通過(guò)查看的源代碼可以發(fā)現(xiàn)的構(gòu)造器都是調(diào)用父類的構(gòu)造器只是它使用的工作隊(duì)列是通過(guò)名字我們都可以猜到這個(gè)是一

本人郵箱:
歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明網(wǎng)址 http://blog.csdn.net/tianshi_kco
github: https://github.com/kco1989/kco
代碼已經(jīng)全部托管github有需要的同學(xué)自行下載

引言

java 提供的線程池還有一個(gè),那就是任務(wù)調(diào)度線程池ScheduledThreadPoolExecutor,它其實(shí)是ThreadPoolExecutor的一個(gè)子類.

理論

我們通過(guò)查看ScheduledThreadPoolExecutor的源代碼,可以發(fā)現(xiàn)ScheduledThreadPoolExecutor的構(gòu)造器都是調(diào)用父類的構(gòu)造器,只是它使用的工作隊(duì)列是java.util.concurrent.ScheduledThreadPoolExecutor.DelayedWorkQueue通過(guò)名字我們都可以猜到這個(gè)是一個(gè)延時(shí)工作隊(duì)列.
因?yàn)?b>ScheduledThreadPoolExecutor的最大線程是Integer.MAX_VALUE,而且根據(jù)源碼可以看到executesubmit其實(shí)都是調(diào)用schedule這個(gè)方法,而且延時(shí)時(shí)間都是指定為0,所以調(diào)用executesubmit的任務(wù)都直接被執(zhí)行.

例子 搞幾個(gè)延時(shí)炸彈

我們搞幾個(gè)延時(shí)炸彈,讓它們每個(gè)5s炸一次

public class TestMain {
    public static void main(String[] args) throws InterruptedException {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        ScheduledThreadPoolExecutor pool = new ScheduledThreadPoolExecutor(5);
        for (int i = 0; i < 5; i ++){
            final int temp = i + 1;
            pool.schedule(() -> {
                System.out.println("第"+temp+"個(gè)炸彈爆炸時(shí)間:" + simpleDateFormat.format(new Date()));
            }, temp * 5, TimeUnit.SECONDS);
        }
        pool.shutdown();
        System.out.println("end main時(shí)間:" + simpleDateFormat.format(new Date()));
    }
}

運(yùn)行結(jié)果:

end main時(shí)間:2016-11-03 19:58:31
第1個(gè)炸彈爆炸時(shí)間:2016-11-03 19:58:36
第2個(gè)炸彈爆炸時(shí)間:2016-11-03 19:58:41
第3個(gè)炸彈爆炸時(shí)間:2016-11-03 19:58:46
第4個(gè)炸彈爆炸時(shí)間:2016-11-03 19:58:51
第5個(gè)炸彈爆炸時(shí)間:2016-11-03 19:58:56

ok,這個(gè)類相對(duì)比較簡(jiǎn)單,我就不多講了

后記

在正在項(xiàng)目中,一般如果需要使用定時(shí)任務(wù),不會(huì)直接使用這個(gè)類的.有一個(gè)quartz已經(jīng)把定時(shí)任務(wù)封裝的很好了.它是通過(guò)cron表示時(shí),可以指定某一個(gè)任務(wù)每天執(zhí)行,或者每周三下午5點(diǎn)執(zhí)行.更多的資料可以去查百度.或者等以后有機(jī)會(huì)我再整理一寫常用jar用法系列文章.就這樣了.

打賞

如果覺得我的文章寫的還過(guò)得去的話,有錢就捧個(gè)錢場(chǎng),沒錢給我捧個(gè)人場(chǎng)(幫我點(diǎn)贊或推薦一下)

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

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

相關(guān)文章

  • (二十)java線程ScheduledThreadPoolExecutor

    摘要:本人郵箱歡迎轉(zhuǎn)載轉(zhuǎn)載請(qǐng)注明網(wǎng)址代碼已經(jīng)全部托管有需要的同學(xué)自行下載引言提供的線程池還有一個(gè)那就是任務(wù)調(diào)度線程池它其實(shí)是的一個(gè)子類理論我們通過(guò)查看的源代碼可以發(fā)現(xiàn)的構(gòu)造器都是調(diào)用父類的構(gòu)造器只是它使用的工作隊(duì)列是通過(guò)名字我們都可以猜到這個(gè)是一 本人郵箱: 歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明網(wǎng)址 http://blog.csdn.net/tianshi_kcogithub: https://github...

    lentrue 評(píng)論0 收藏0
  • 初讀《Java并發(fā)編程的藝術(shù)》-第十章:Executor框架 -10.1 Executor框架簡(jiǎn)介

    摘要:線程的啟動(dòng)與銷毀都與本地線程同步。操作系統(tǒng)會(huì)調(diào)度所有線程并將它們分配給可用的??蚣艿某蓡T主要成員線程池接口接口接口以及工具類。創(chuàng)建單個(gè)線程的接口與其實(shí)現(xiàn)類用于表示異步計(jì)算的結(jié)果。參考書籍并發(fā)編程的藝術(shù)方騰飛魏鵬程曉明著 在java中,直接使用線程來(lái)異步的執(zhí)行任務(wù),線程的每次創(chuàng)建與銷毀需要一定的計(jì)算機(jī)資源開銷。每個(gè)任務(wù)創(chuàng)建一個(gè)線程的話,當(dāng)任務(wù)數(shù)量多的時(shí)候,則對(duì)應(yīng)的創(chuàng)建銷毀開銷會(huì)消耗大量...

    aisuhua 評(píng)論0 收藏0
  • 深入理解Java線程

    摘要:深入理解線程池線程池初探所謂線程池,就是將多個(gè)線程放在一個(gè)池子里面所謂池化技術(shù),然后需要線程的時(shí)候不是創(chuàng)建一個(gè)線程,而是從線程池里面獲取一個(gè)可用的線程,然后執(zhí)行我們的任務(wù)。最后的的意思是需要確保線程池已經(jīng)被啟動(dòng)起來(lái)了。 深入理解Java線程池 線程池初探 ?所謂線程池,就是將多個(gè)線程放在一個(gè)池子里面(所謂池化技術(shù)),然后需要線程的時(shí)候不是創(chuàng)建一個(gè)線程,而是從線程池里面獲取一個(gè)可用的線程...

    fredshare 評(píng)論0 收藏0
  • Java線程學(xué)習(xí)(八)線程池與Executor 框架

    摘要:一使用線程池的好處線程池提供了一種限制和管理資源包括執(zhí)行一個(gè)任務(wù)。每個(gè)線程池還維護(hù)一些基本統(tǒng)計(jì)信息,例如已完成任務(wù)的數(shù)量。通過(guò)重復(fù)利用已創(chuàng)建的線程降低線程創(chuàng)建和銷毀造成的消耗。使用無(wú)界隊(duì)列作為線程池的工作隊(duì)列會(huì)對(duì)線程池帶來(lái)的影響與相同。 歷史優(yōu)質(zhì)文章推薦: Java并發(fā)編程指南專欄 分布式系統(tǒng)的經(jīng)典基礎(chǔ)理論 可能是最漂亮的Spring事務(wù)管理詳解 面試中關(guān)于Java虛擬機(jī)(jvm)的問...

    cheng10 評(píng)論0 收藏0
  • Java線程池架構(gòu)(二)線程調(diào)度器

    摘要:在前面介紹了的多線程的基本原理信息線程池架構(gòu)原理和源碼解析,本文對(duì)這個(gè)本身的線程池的調(diào)度器做一個(gè)簡(jiǎn)單擴(kuò)展,如果還沒讀過(guò)上一篇文章,建議讀一下,因?yàn)檫@是調(diào)度器的核心組件部分。 在前面介紹了java的多線程的基本原理信息:《Java線程池架構(gòu)原理和源碼解析》,本文對(duì)這個(gè)java本身的線程池的調(diào)度器做一個(gè)簡(jiǎn)單擴(kuò)展,如果還沒讀過(guò)上一篇文章,建議讀一下,因?yàn)檫@是調(diào)度器的核心組件部分。 我們?nèi)绻?..

    SmallBoyO 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<