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

先上兩張圖,左邊一個是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()函數來釋放一個資源

 

未完待續。。。。

相關文章
相關標籤/搜索