java.util.concurrent和工具類

一、java.util.concurrent體系的主要大板塊包含內容

說到JUC其實就是說java的多線程等和鎖及一些狀態轉換,中斷等,它還涉及到一些tools工具的東東,見下圖:

Tools也包含了5個部分的知識:Executors、Semaphor、Exchanger、CyclicBarrier、CountDownLatch,其實也就是五個工具類

 

 

 

二、Executors

它主要用來創建線程池,代理了線程池的創建,使得你的創建入口參數變得簡單,通過方法名便知道了你要創建的線程池是什麼樣一個線程池,功能大概是什麼樣的,其實線程池內部都是統一的方法來實現,通過構造方法重載,使得實現不同的功能,但是往往這種方式很多時候不知道具體入口參數的改變有什麼意思,除非讀了源碼才知道,此時builder模式的方式來完成,builder什麼樣的東西它告訴你就可以。

 

常見的方法有(都是靜態方法):

 

1、創建一個指定大小的線程池,如果超過大小,放入blocken隊列中,默認是LinkedBlockingQueue,默認的ThreadFactory爲:Executors.defaultThreadFactory(),是一個Executors的一個內部類。

 

Executors.newFixedThreadPool(int)

內部實現如下:

public static ExecutorService newFixedThreadPool(int nThreads) { 

    return new ThreadPoolExecutor(nThreads, nThreads, 

                                  0L, TimeUnit.MILLISECONDS, 

                                  new LinkedBlockingQueue<Runnable>()); 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章