待續!
AQS1. AQS 簡介2. CLH 同步隊列2.1 入隊2.2 出隊3. 同步狀態的獲取和釋放3.1 獨佔式3.1.1 同步狀態獲取3.1.2 獲取響應中斷3.1.3 超時獲取3.1.4 線程阻塞3.1.5 同步狀態釋放3.2
volatile自身特性 可見性:對一個volatile變量的讀,總是能看到(任意線程)對這個volatile變量最後的寫入。 原子性:對任意單個volatile變量的讀/寫具有原子性,單類似於volatile++這種複合操作不
1.公平鎖和非公平鎖釋放時,最後都要寫一個volatile變量的state。 protected final boolean tryRelease(int releases) { int c = getS
Java併發編程:volatile關鍵字解析 volatile這個關鍵字可能很多朋友都聽說過,或許也都用過。在Java 5之前,它是一個備受爭議的關鍵字,因爲在程序中使用它往往會導致出人意料的結果。在Java 5之後,vol
Executor框架1. 簡介1.1 Executor框架的兩級調度模型1.2 Executor框架的結構與成員1.2.1 Executor 框架的結構1.2.2 Executor 框架的成員2. ThreadPoolExecut
CAS1. 簡介2. CAS 分析3. CAS 缺陷 1. 簡介 CAS,Compare And Swap,即比較並交換。整個AQS同步組件、Atomic原子類操作等等都是以CAS實現的,甚至ConcurrentHa
ReentrantLock1. 簡介2. 獲取鎖2.1 非公平鎖2.2 公平鎖2.3 區別3. 釋放鎖4. ReentrantLock與synchronized的區別 1. 簡介 ReentrantLock,可重入鎖
ReentrantReadWriteLock1. 簡介2. 寫鎖2.1 寫鎖的獲取2.2 寫鎖的釋放3. 讀鎖3.1 讀鎖的獲取3.2 讀鎖的釋放3.3 HoldCounter4. 鎖降級5. 示例 1. 簡介 重入
Semphore1. 簡介2. 實現分析2.1 信號量獲取2.1.1 公平鎖2.1.2 非公平鎖2.2 信號量釋放3. 應用示例 1. 簡介 信號量Semaphore是一個控制訪問多個共享資源的計數器,和CountD
線程和線程池1. 線程1.1 什麼是線程&多線程1.2 線程實現的方式1.3 線程的生命週期&狀態1.4 線程執行順序1.5 Callable & Future1.6 總結2. 線程池2.1 線程池是什麼2.2 線程池的好處2.3
Condition1. 簡介2. Condition的圖解3. Condition 的實現3.1 等待隊列3.2 等待3.3 通知4. 總結5. Condition 的應用 1. 簡介 在沒有Lock之前,我們使用s
ThreadLocal1. ThreadLoacal 是什麼2. 使用示例3. ThreadLocal源碼解析3.1 ThreadLocalMap3.1.1 set(ThreadLocal key, Object value)3
Exchanger1. 簡介2. 應用示例3. 實現分析4. exchange(V x)4.1 slotExchange(Object item, boolean timed, long ns)4.2 arenaExchange
CountDownLatch1. 簡介2. 實現分析2.1 await()2.2 countDown()3. 總結4. 應用示例 1. 簡介 CountDownLatch與CyclicBarrier有點兒相似。
CyclicBarrier1. 簡介2. 實現分析2.1 構造方法2.2 await()3. 應用場景4. 應用示例 1. 簡介 CyclicBarrier,一個同步輔助類,在API中是這麼介紹的:它允許一組線程互相