JDK8 併發包一覽

  

《java併發編程系統與模型》已出版,真心但願你們能支持這本書,您的支持就是我最大的動力!

AbstractExecutorService: 抽象的執行器。
ArrayBlockingQueue: 一個有邊界的先進先出的阻塞隊列
BlockingDeque: 接口描述,阻塞雙端隊列java

BlockingQueue: 接口,阻塞隊列編程

BrokenBarrierException數組

Callable: 帶返回值的異步任務接口。其值不能直接被獲取,而是要經過Future來獲取安全

CancellationException: 若是在執行器框架中,帶返回值的任務已經被取消而沒法從新取回,將拋出此異常數據結構

CompletableFuture: 1.8中新增的類
將執行的結果以回調的方式處理,而不是阻塞等待。「被喻做可完成的Future」多線程

CompletionException: 在計算結果或者任務的過程當中拋出的異常
CompletionService: 對應ExecutorService ,ExecutorService每次執行都須要等待返回結果,CompletionService則可集中的等待返回結果。併發

CompletionStage: 表明異步計算中的一個階段或步驟。框架

ConcurrentHashMap: 併發的,線程安全的HashMap
ConcurrentLinkedDeque: 併發的,線程安全的無界雙端隊列
ConcurrentLinkedQueue: 併發的,線程安全的無界隊列dom

ConcurrentMap: 併發Map通用接口
ConcurrentNavigableMap: 併發的NavigableMap。這種Map能夠按照能夠按照鍵的升序或降序訪問和遍歷。
ConcurrentSkipListMap: 一個以跳錶(SkipList)做爲數據結構的併發Map。Key有序(不是插入順序,而是Key的天然順序或者自定義順序)
LinkedHashMap 保證了插入順序
TreeMap按照Key來排序,實現了NavigableMap。說明是按照Key的天然順序。異步

ConcurrentSkipListSet: 一個以跳錶有序的,併發的Set集合

CopyOnWriteArrayList: CopyOnWrite容器

CopyOnWriteArraySet: CopyOnWrite容器

CountDownLatch: 一個同步工具類,它容許一個或多個線程一直等待,直到其餘線程的操做執行完後再執行

CountedCompleter: 1.8出現的類
Java 8添加了一個稱爲CountedCompleter的ForkJoinTask類的抽象子類。
該框架支持兩種類型的任務:不產生結果的任務和產生結果的任務。
RecursiveAction:類的實例表示不產生結果的任務。 RecursiveTask類的實例表示產生結果的任務。
CountedCompleter:任務可能產生結果,也可能不產生結果。

CyclicBarrier: :一個同步輔助類,它容許一組線程互相等待,直到到達某個公共屏障點

做用與CountDownLatch相似
Delayed: 延遲隊列的協議接口
DelayQueue: 延遲隊列
Exchanger: 能夠在兩個線程之間交換數據,只能是2個線程,他不支持更多的線程之間互換數據。

ExecutionException

Executor: 執行器接口

ExecutorCompletionService: CompletionService的具體實現
Executors: ExecutorService的生產工廠

ExecutorService: 執行器
ForkJoinPool:是一個能夠執行ForkJoinTask的ExcuteService

ForkJoinTask: 表明一個須要執行的任務

ForkJoinWorkerThread: ForkJoinPool管理着ForkJoinWorkerThread線程,ForkJoinWorkerThread線程內部有一個雙端隊列,這個雙端隊列主要由一個數組queue、數組下標queueBase、數組上標queueTop三個值保證。

Future: 接口 表明着一個異步執行的結果
FutureTask: 一個可取消的異步計算,FutureTask 實現了Future的基本方法,提空 start cancel 操做,能夠查詢計算是否已經完成

LinkedBlockingDeque: 基於鏈表的,線程安全的雙端隊列,能夠指定鏈表容量,也能夠不指定(默認Integer.MAX_VALUE)

LinkedBlockingQueue: 基於鏈表的,線程安全的隊列,能夠指定鏈表容量,也能夠不指定(默認Integer.MAX_VALUE)

LinkedTransferQueue: TransferQueue的具體實現

Phaser: 包含了CyclicBarrier和CountDownLatch的相關功能。但提供更多更復雜的功能

PriorityBlockingQueue: 支持優先級的阻塞隊列

RecursiveAction: ForkJoinTask的實現,沒有返回值

RecursiveTask: ForkJoinTask的實現,帶返回值

RejectedExecutionException

RejectedExecutionHandler: 實現RejectedExecutionHandler,在執行器中管理被拒絕的任務

RunnableFuture: 接口比較簡單,繼承了Runnable、Future接口。並只有一個run方法做爲 Runnable 的 Future。成功執行 run 方法能夠完成 Future 並容許訪問其結果。

RunnableScheduledFuture: 可返回結果的週期性執行接口

ScheduledExecutorService: 可週期性地執行任務的執行器的接口
ScheduledFuture: 執行週期性結果的接口
ScheduledThreadPoolExecutor: 可週期性地執行任務的執行器的實現

Semaphore: 信號量

SynchronousQueue:
這樣 一種阻塞隊列,其中每一個 put 必須等待一個 take,反之亦然。同步隊列沒有任何內部容量,甚至連一個隊列的容量都沒有。
不能在同步隊列上進行 peek

ThreadFactory 建立線程的工廠。好比須要對線程設置編號和名字等
ThreadLocalRandom 多線程模式下的隨機數生成器
ThreadPoolExecutor 線程池執行器
TimeoutException 阻塞操做的超市異常
TimeUnit 線程安全的時間轉換類
TransferQueue TransferQueue是一個聰明的隊列,它是ConcurrentLinkedQueue, SynchronousQueue (在公平模式下), 無界的LinkedBlockingQueues等的超集。生產者會一直阻塞直到所添加到隊列的元素被某一個消費者所消費(不單單是添加到隊列裏就完事)。新添加的transfer方法用來實現這種約束。顧名思義,阻塞就是發生在元素從一個線程transfer到另外一個線程的過程當中,它有效地實現了元素在線程之間的傳遞

AtomicBoolean 原子操做類
AtomicInteger

AtomicIntegerArray 原子的整形數組操做類

AtomicIntegerFieldUpdater 原子更新引用類型裏的字段。
AtomicLong Long類型原子操做
AtomicLongArray Long類型素組原子操做

AtomicLongFieldUpdater 原子更新引用類型的Long字段

AtomicMarkableReference 維護帶有標記位的對象引用,能夠原子方式對其進行更新

AtomicReference 原子更新對象
AtomicReferenceArray 原子更新對象數組
AtomicReferenceFieldUpdater 原子更新成員變量
AtomicStampedReference 帶有時間戳的原子對象引用

累加器:

DoubleAccumulator

DoubleAdder
LongAccumulator

LongAdder
Striped64

包 java.util.concurrent.locks

AbstractOwnableSynchronizer 抽象同步器
AbstractQueuedLongSynchronizer 64位版本的抽象同步器。與AbstractQueuedSynchronizer除了 state不同,全都同樣
AbstractQueuedSynchronizer 抽象同步器 繼承自AbstractOwnableSynchronizer
Condition 條件
Lock 通用的鎖接口
LockSupport 底層的線程操做
ReadWriteLock 讀寫鎖的統一接口
ReentrantLock 可重入鎖
ReentrantReadWriteLock 可重入的讀寫鎖
StampedLock JAVA8 新增 StampedLock要比ReentrantReadWriteLock更加廉價,也就是消耗比較小。

相關文章
相關標籤/搜索