(二十一)java多線程之Executors

本人郵箱: <kco1989@qq.com>
歡迎轉載,轉載請註明網址 http://blog.csdn.net/tianshi_kco
github: https://github.com/kco1989/kco
代碼已經所有託管github有須要的同窗自行下載java

引言

java 自動的兩個線程池講完,今天就講跟他們有關的一個工具類吧--Executorsgit

理論

Executors 僅僅是一個線程池的工具類,它沒法實例話,包含都是靜態方法或靜態類.github

  • newFixedThreadPool(int nThreads) 建立一個指定線程數量的線程池t nThreads, ThreadFactory threadFactory)` 建立一個能夠自定義的線程工廠的指定線程數量的線程池緩存

  • newSingleThreadExecutor() 建立一個只有一個線程的線程池微信

  • newSingleThreadExecutor(ThreadFactory threadFactory) 建立一個能夠自定義線程工程的且只有一個線程的線程池工具

  • newCachedThreadPool 建立一個能夠緩存的線程池,它的源碼實際上是return new ThreadPoolExecutor(0, Integer.MAX_VALUE,60L, TimeUnit.SECONDS,new SynchronousQueue<Runnable>()); 經過這裏咱們能夠看出,他的核心線程數0,最大線程數爲Integer.MAX_VALUE,但線程空閒時,線程能夠緩存1分鐘,以後若是尚未任務則被回收.工做隊列是一個容量0大小的SynchronousQueue隊列spa

  • newCachedThreadPool(ThreadFactory threadFactory) 跟上面同樣,只是多了能夠自定義線程工廠.net

  • newSingleThreadScheduledExecutor() 建立一個只有一個線程的任務調度線程池.線程

  • newSingleThreadScheduledExecutor(ThreadFactory threadFactory) 建立一個只有一個線程且能自定義線程工程的任務調度線程池code

  • newScheduledThreadPool(int corePoolSize) 建立指定線程數量的任務調度線程池

  • newScheduledThreadPool(int corePoolSize, ThreadFactory threadFactory) 建立一個能夠指定數量寫自定義線程工程的任務調度線程池

除此以外,Executors還提供了讓Runnable轉化爲Callable的適配器

例子

這個章節就不寫例子,前面學了線程池的知識以後,直接看Executors源碼,就感受比較清晰


打賞

若是以爲個人文章寫的還過得去的話,有錢就捧個錢場,沒錢給我捧我的場(幫我點贊或推薦一下)
微信打賞
支付寶打賞

相關文章
相關標籤/搜索