synchronized和ReentrantLock有什么区别呢?
下文笔者讲述synchronized和ReentrantLock之间的区别说明,如下所示
synchronized和ReentrantLock相同点
synchronized和ReentrantLock都是可重入锁
synchronized和ReentrantLock区别
区别1:本质不同 synchronized 是关键字 ReetrantLock是类 区别2:可扩展性不同 synchronized是关键字--系统原生提供-无法扩展 ReetrantLock是类---可提供继承,有方法,和一些变量的获取--如锁状态 区别3:加锁和释放锁的方式不同 synchronized无需要手动开启和释放锁 ReentrantLock必须手动获取与释放锁 区别4:可作用域不同 synchronized可给方法、代码块加锁 ReentrantLock只能给代码块加锁 区别5:性能不同 synchronized在竞争量比较小的情况下比ReentrantLock性能好 区别6:底层实现不同---两者锁机制不同 synchronized操作对象头中mark word ReentrantLock底层调用的是Unsafe的park方法加锁
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。