动态高并发时为什么推荐ReentrantLock而不是Synchronized?
前言碎语 Synchronized 和 ReentrantLock 大家应该都不陌生了,作为java中最常用的本地锁,最初版本中 ReentrantLock 的性能是远远强于 Synchronized 的,后续java在一次次的版本迭代中 对 Synchronized 进行了大量的优化,直到 jdk1.6 之后,两种锁的性能已经相差无几,甚至 Synchronized 的自动释放锁会更好用。 在面试时被问到 Synchronized 和 ReentrantLock 的使用选择时,很多朋友都脱口而出的说用 Synchronized ,甚至在我面试的时候问面试者,也很少有人能够答出所以然来,moon 想说,这可不一定,只对标题感兴趣的同学可以直接划到最后,我可不是标题党~ Synchronized使用 在 java 代码中 synchronized 的使用是非常简单的 1.直接贴在方法上 2.贴在代码块儿上 程序运行期间,Synchronized那一块儿代码发生么什么? 来看一张图 在多线程运行过程中,线程会去先抢对象的监视器,这个监视器是对象独有的,其实就相当于一把钥匙,抢到了,那你就...
上文档: