多線程 《深入淺出 Java Concurrency》

synchronized使用的內置鎖和ReentrantLock這種顯式鎖在java6以後性能沒多大差異,在更新的版本中內置鎖只會比顯式鎖性能更好。

這兩種鎖都是獨佔鎖,java5以前內置鎖性能低的原因是它沒做任何優化,直接使用系統的互斥體來獲取鎖。

顯式鎖除了CAS的時候利用的是本地代碼以外,其它的部分都是Java代碼實現的,在後續版本的Java中,顯式鎖不太可能會比內置鎖好,只會更差。使用顯式鎖的唯一理由是要利用它更多的功能

 

 J.U.C 整體認識

原子操作 part 1 從AtomicInteger開始

原子操作 part 2 數組、引用的原子操作

原子操作 part 3 指令重排序與happens-before法則

原子操作 part 4 CAS操作

鎖機制 part 1 Lock與ReentrantLock

鎖機制 part 2 AQS

鎖機制 part 3 加鎖的原理 (Lock.lock)

鎖機制 part 4 鎖釋放與條件變量 (Lock.unlock And Condition)

鎖機制 part 5 閉鎖 (CountDownLatch)

鎖機制 part 6 CyclicBarrier

鎖機制 part 7 信號量 (Semaphore)

鎖機制 part 8 讀寫鎖 (ReentrantReadWriteLock) (1)

鎖機制 part 9 讀寫鎖 (ReentrantReadWriteLock) (2)

鎖機制 part 10 鎖的一些其它問題

併發容器 part 1 ConcurrentMap (1)

併發容器 part 2 ConcurrentMap (2)

併發容器 part 3 ConcurrentMap (3)

併發容器 part 4 併發隊列與Queue簡介

併發容器 part 5 ConcurrentLinkedQueue

併發容器 part 6 可阻塞的BlockingQueue (1)

併發容器 part 7 可阻塞的BlockingQueue (2)

併發容器 part 8 可阻塞的BlockingQueue (3)

併發容器 part 9 雙向隊列集合 Deque

併發容器 part 10 雙向併發阻塞隊列 BlockingDeque

併發容器 part 11 Exchanger

併發容器 part 12 線程安全的List/Set CopyOnWriteArrayList/CopyOnWriteArraySet

線程池 part 1 簡介

線程池 part 2 Executor 以及Executors

線程池 part 3 Executor 生命週期

線程池 part 4 線程池任務拒絕策略

線程池 part 5 週期性任務調度

線程池 part 6 線程池的實現及原理 (1)

線程池 part 7 線程池的實現及原理 (2)

線程池 part 8 線程池的實現及原理 (3)

線程池 part 9 併發操作異常體系

併發總結 part 1 死鎖與活躍度

併發總結 part 2 常見的併發場景

併發總結 part 3 常見的併發陷阱

併發總結 part 4  性能與伸縮性

捕獲Java線程池執行任務拋出的異常

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章