1. 程式人生 > >java——多線程管理(concurrent包)

java——多線程管理(concurrent包)

ack 多個 block 單個 images 接口 創建線程 固定 。。

先上兩張圖,左邊一個是concurrent包下的所有接口,右邊是該包下的所有類,其實我們經常用到的接口和類都是少數的,接下來將具體介紹。

技術分享技術分享

1. 常用的接口

Callable: 一個帶有返回值的線程接口

Future:用來接收返回值的一個泛型的接口,提供了cancle終止線程的操作

Executor:具體Runnable任務的執行者

ExecutorService:一個線程池的管理者,可以對Runnable和Callable任務進行調度

BlockingQueue:阻塞隊列

2. 常用的類

(1) Executors:用來創建線程池的操作

Executors.newFixedThreadPool(n):創建固定大小的線程池

Executors.newCachedThreadPool():創建無界線程池,可以自動的對空閑的(超過60s未使用)線程進行回收和利用

Executors.newSingleThreadExecutor():單個後臺線程,可以保證各個任務按照順序來執行,同一個時間內不會有多個線程是活動的。

(2) Semaphore:一個統計信號量,用來限制可以訪問某些資源的線程數目。

使用acquire()函數來占用一個資源

使用release()函數來釋放一個資源

未完待續。。。。

java——多線程管理(concurrent包)