AbstractExecutorService
: 抽象的執行器。ArrayBlockingQueue
: 一個有邊界的先進先出的阻塞隊列BlockingDeque
: 接口描述,阻塞雙端隊列java
BlockingQueue
: 接口,阻塞隊列編程
BrokenBarrierException數組
Callable
: 帶返回值的異步任務接口。其值不能直接被獲取,而是要經過Future來獲取安全
CancellationException
: 若是在執行器框架中,帶返回值的任務已經被取消而沒法從新取回,將拋出此異常數據結構
CompletableFuture
: 1.8中新增的類
將執行的結果以回調的方式處理,而不是阻塞等待。「被喻做可完成的Future」多線程
CompletionException
: 在計算結果或者任務的過程當中拋出的異常CompletionService
: 對應ExecutorService ,ExecutorService每次執行都須要等待返回結果,CompletionService則可集中的等待返回結果。併發
CompletionStage
: 表明異步計算中的一個階段或步驟。框架
ConcurrentHashMap
: 併發的,線程安全的HashMapConcurrentLinkedDeque
: 併發的,線程安全的無界雙端隊列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
抽象同步器 繼承自AbstractOwnableSynchronizerCondition
條件Lock
通用的鎖接口LockSupport
底層的線程操做ReadWriteLock
讀寫鎖的統一接口ReentrantLock
可重入鎖ReentrantReadWriteLock
可重入的讀寫鎖StampedLock
JAVA8 新增 StampedLock
要比ReentrantReadWriteLock更加廉價,也就是消耗比較小。