ConcurrentHashMap(JDK1.8) 为何是synchronized,而不是可重入锁

http://www.javashuo.com/article/p-fkahuyel-t.html性能优化

1. 减小内存开销 
假设使用可重入锁来得到同步支持,那么每一个节点都须要经过继承AQS来得到同步支持。但并非每一个节点都须要得到同步支持的,只有链表的头节点(红黑树的根节点)须要同步,这无疑带来了巨大内存浪费。 
2. 得到JVM的支持 
可重入锁毕竟是API这个级别的,后续的性能优化空间很小。 
synchronized则是JVM直接支持的,JVM可以在运行时做出相应的优化措施:锁粗化、锁消除、锁自旋等等。这就使得synchronized可以随着JDK版本的升级而不改动代码的前提下得到性能上的提高。
 性能

相关文章
相关标签/搜索