http://ifeve.com/java-concurrency-thread-directory/html
synchronized使用的內置鎖和ReentrantLock這種顯式鎖在java6之後性能沒多大差別,在更新的版本中內置鎖只會比顯式鎖性能更好。java
這兩種鎖都是獨佔鎖,java5之前內置鎖性能低的緣由是它沒作任何優化,直接使用系統的互斥體來獲取鎖。數組
顯式鎖除了CAS的時候利用的是本地代碼之外,其它的部分都是Java代碼實現的,在後續版本的Java中,顯式鎖不太可能會比內置鎖好,只會更差。使用顯式鎖的惟一理由是要利用它更多的功能安全
原子操做 part 1 從AtomicInteger開始app
原子操做 part 3 指令重排序與happens-before法則優化
鎖機制 part 1 Lock與ReentrantLock.net
鎖機制 part 4 鎖釋放與條件變量 (Lock.unlock And Condition)
鎖機制 part 5 閉鎖 (CountDownLatch)
鎖機制 part 8 讀寫鎖 (ReentrantReadWriteLock) (1)
鎖機制 part 9 讀寫鎖 (ReentrantReadWriteLock) (2)
併發容器 part 5 ConcurrentLinkedQueue
併發容器 part 6 可阻塞的BlockingQueue (1)
併發容器 part 7 可阻塞的BlockingQueue (2)
併發容器 part 8 可阻塞的BlockingQueue (3)
併發容器 part 10 雙向併發阻塞隊列 BlockingDeque
併發容器 part 12 線程安全的List/Set CopyOnWriteArrayList/CopyOnWriteArraySet