本人郵箱: <kco1989@qq.com>
歡迎轉載,轉載請註明網址 http://blog.csdn.net/tianshi_kco
github: https://github.com/kco1989/kco
代碼已經所有託管github有須要的同窗自行下載java
java 自動的兩個線程池講完,今天就講跟他們有關的一個工具類吧--Executors
git
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
源碼,就感受比較清晰
若是以爲個人文章寫的還過得去的話,有錢就捧個錢場,沒錢給我捧我的場(幫我點贊或推薦一下)