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