0
点赞
收藏
分享

微信扫一扫

20 Synchronized和Lock的实现原理与区别

相同点:

(1)都是可重入锁

(2)都保证了可见性和互斥性

(3)都可以用于控制多线程对共享对象的访问

不同点:

(1)ReentrantLock等待可中断

(2)synchronized中的锁是非公平的,ReentrantLock默认也是非公平的,但是可以通过修改参数来实现公平锁。

(3)ReentrantLock绑定多个条件

(4)synchronized是Java中的关键字是JVM级别的锁,而ReentrantLock是一个Lock接口下的实现类,是API层面的锁。

(5)synchronized隐式获取锁和释放锁,ReentrantLock显示获取和释放锁,在使用时避免程序异常无法释放锁,需要在finally控制块中进行解锁操作。

举报

相关推荐

0 条评论