《java併發程式設計系統與模型》已出版,真心希望大家能支援這本書,您的支援就是我最大的動力!
AbstractExecutorService
: 抽象的執行器。ArrayBlockingQueue
: 一個有邊界的先進先出的阻塞佇列BlockingDeque
: 介面描述,阻塞雙端佇列
BlockingQueue
: 介面,阻塞佇列
BrokenBarrierException
Callable
: 帶返回值的非同步任務介面。其值不能直接被獲取,而是要通過Future來獲取
CancellationException
: 如果在執行器框架中,帶返回值的任務已經被取消而無法重新取回,將丟擲此異常
CompletableFuture
: 1.8中新增的類
將執行的結果以回撥的方式處理,而不是阻塞等待。“被喻作可完成的Future”
CompletionException
: 在計算結果或者任務的過程中丟擲的異常CompletionService
: 對應ExecutorService ,ExecutorService每次執行都需要等待返回結果,CompletionService則可集中的等待返回結果。
CompletionStage
: 代表非同步計算中的一個階段或步驟。
ConcurrentHashMap
: 併發的,執行緒安全的HashMapConcurrentLinkedDeque
: 併發的,執行緒安全的無界雙端佇列ConcurrentLinkedQueue
: 併發的,執行緒安全的無界佇列
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更加廉價,也就是消耗比較小。