死磕 java同步系列之ReentrantLock VS synchronized——结果可能跟你想的不一样 (2)

(4)至于在非公平模式下,ReentrantLock与synchronized的效率孰高孰低,彤哥给出的结论是随着Java版本的不断升级,synchronized的效率只会越来越高;

彩蛋

既然ReentrantLock的功能更丰富,而且效率也不低,我们是不是可以放弃使用synchronized了呢?

答:我认为不是。因为synchronized是Java原生支持的,随着Java版本的不断升级,Java团队也是在不断优化synchronized,所以我认为在功能相同的前提下,最好还是使用原生的synchronized关键字来加锁,这样我们就能获得Java版本升级带来的免费的性能提升的空间。

另外,在Java8的ConcurrentHashMap中已经把ReentrantLock换成了synchronized来分段加锁了,这也是Java版本不断升级带来的免费的synchronized的性能提升。

推荐阅读

死磕 java同步系列之ReentrantLock源码解析(二)——条件锁

死磕 java同步系列之ReentrantLock源码解析(一)——公平锁、非公平锁

死磕 java同步系列之AQS起篇

死磕 java同步系列之自己动手写一个锁Lock

死磕 java魔法类之Unsafe解析

死磕 java同步系列之JMM(Java Memory Model)

死磕 java同步系列之volatile解析

死磕 java同步系列之synchronized解析

欢迎关注我的公众号“彤哥读源码”,查看更多源码系列文章, 与彤哥一起畅游源码的海洋。

qrcode

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzfdy.html