http://ifeve.com/java-concurrency-thread-directory/
synchronized使用的内置锁和ReentrantLock这种显式锁在java6以后性能没多大差异,在更新的版本中内置锁只会比显式锁性能更好。
这两种锁都是独占锁,java5以前内置锁性能低的原因是它没做任何优化,直接使用系统的互斥体来获取锁。
显式锁除了CAS的时候利用的是本地代码以外,其它的部分都是Java代码实现的,在后续版本的Java中,显式锁不太可能会比内置锁好,只会更差。使用显式锁的唯一理由是要利用它更多的功能
原子操作 part 3 指令重排序与happens-before法则
锁机制 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
线程池 part 2 Executor 以及Executors