性能优化——Lock 同步锁的优化方法

在 JDK1.5 之后,Java 还提供了 Lock 同步锁。那么它有什么优势呢?
 
相对于需要 JVM 隐式获取和释放锁的 Synchronized 同步锁,Lock 同步锁(以下简称 Lock 锁)需要的是显示获取和释放锁,这就为获取和释放锁提供了更多的灵活性。 Lock 锁的基本操作是通过乐观锁来实现的,但由于 Lock 锁也会在阻塞时被挂起,因此它依然属于悲观锁。 我们可以通过一张图来简单对比下两个同步锁,了解下各自的特点:
 
 
从性能方面上来说,在并发量不高、竞争不激烈的情况下,Synchronized 同步锁由于具有分级锁的优势,性能上与 Lock 锁差不多;但在高负载、高并发的情况下,Synchronized 同步锁由于竞争激烈会升级到重量级锁,性能则没有 Lock 锁稳定。
 
我们可以通过一组简单的性能测试,直观地对比下两种锁的性能,结果见下方,代码可以在 Github

猜你喜欢

转载自blog.csdn.net/qq_36589864/article/details/108140683