先上兩張圖,左邊一個是concurrent包下的全部接口,右邊是該包下的全部類,其實咱們常常用到的接口和類都是少數的,接下來將具體介紹。函數
1. 經常使用的接口ui
Callable: 一個帶有返回值的線程接口spa
Future:用來接收返回值的一個泛型的接口,提供了cancle終止線程的操做線程
Executor:具體Runnable任務的執行者blog
ExecutorService:一個線程池的管理者,能夠對Runnable和Callable任務進行調度接口
BlockingQueue:阻塞隊列隊列
2. 經常使用的類資源
(1) Executors:用來建立線程池的操做後臺
Executors.newFixedThreadPool(n):建立固定大小的線程池泛型
Executors.newCachedThreadPool():建立無界線程池,能夠自動的對空閒的(超過60s未使用)線程進行回收和利用
Executors.newSingleThreadExecutor():單個後臺線程,能夠保證各個任務按照順序來執行,同一個時間內不會有多個線程是活動的。
(2) Semaphore:一個統計信號量,用來限制能夠訪問某些資源的線程數目。
使用acquire()函數來佔用一個資源
使用release()函數來釋放一個資源
未完待續。。。。