JAVA8的ConcurrentHashMap为什么放弃了分段锁

为什么不用ReentrantLock而用synchronized ?

  • 减少内存开销:如果使用ReentrantLock则需要节点继承AQS来获得同步支持,增加内存开销,而1.8中只有头节点需要进行同步。
  • 内部优化:synchronized则是JVM直接支持的,JVM能够在运行时作出相应的优化措施:锁粗化、锁消除、锁自旋等等。
posted @ 2020-09-16 12:49  张还行  阅读(1346)  评论(0编辑  收藏  举报