解析ReentrantLock实现原理

Posted jing99

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解析ReentrantLock实现原理相关的知识,希望对你有一定的参考价值。

  在Java中通常实现锁有两种方式,一种是synchronized关键字,另一种是Lock。首先最大的不同:synchronized是基于JVM层面实现的,而Lock是基于JDK层面实现的。

对于使用者的直观体验上Lock是比较复杂的,需要lock和realse,如果忘记释放锁就会产生死锁的问题,所以,通常需要在finally中进行锁的释放。但是synchronized的使用十分简单,只需要对自己的方法或者关注的同步对象或类使用synchronized关键字即可。但是对于锁的粒度控制比较粗,同时对于实现一些锁的状态的转移比较困难。例如:

特点:

tipssynchronizedLock
锁获取超时 不支持 支持
获取锁响应中断 不支持 支持

以上是关于解析ReentrantLock实现原理的主要内容,如果未能解决你的问题,请参考以下文章

ReentrantLock及Condition原理解析

解析ReentrantLock实现原理

Java并发原理解析!reentrantlock可重入

Java多线程 -- 公平锁和非公平锁

ReentrantLock实现原理深入探究

深入理解AbstractQueuedSynchronizerReentrantLock底层实现原理