天天看點

java.util.concurrent 源碼分析-包結構

concurrent包結構:

第一部分 Aomic資料類型

這部分都被放在java.util.concurrent.atomic這個包裡面,實作了原子化操作的資料類型,包括 Boolean, Integer, Long, 和Referrence這四種類型以及這四種類型的數組類型。

java.util.concurrent 源碼分析-包結構

第二部分 鎖

這部分都被放在java.util.concurrent.lock這個包裡面,實作了并發操作中的幾種類型的鎖

java.util.concurrent 源碼分析-包結構

第三部分 java集合架構中的一些資料結構的并發實作

這部分實作的資料結構主要有List, Queue和Map。

Map:

java.util.concurrent 源碼分析-包結構

Queue:

java.util.concurrent 源碼分析-包結構

第四部分 多線程任務執行

這部分大體上涉及到三個概念:

Callable 與Runnable實作任務的定義供線程調用,所不同的是callable有傳回值,可以抛出異常,而runnable無傳回值,不能抛出受檢異常;

Executor 執行任務;

java.util.concurrent 源碼分析-包結構

Future 異步送出任務的傳回資料.

第五部分 線程管理類

這部分主要是對線程集合的管理的實作,有CyclicBarrier

java.util.concurrent 源碼分析-包結構

, CountDownLatch

,Exchanger等一些類