我是靠谱客的博主 慈祥篮球,这篇文章主要介绍synchronized与ReetrantLock的区别,现在分享给大家,希望可以做个参考。

synchronized与ReetrantLock的区别(个人见解,如果不对,请勿喷)
相同之处:
1、两者都是同时实现了锁的功能
2、两者都是可重入锁

不同之处:
(1)synchronized是独占锁,加锁和解锁的过程自动进行,易于操作,但不够灵活。 ReentrantLock也是独占锁,加锁和解锁的过程需要手动进行,不易操作,但非常灵活。
(2)synchronized可重入,因为加锁和解锁自动进行,不必担心最后是否释放锁;ReentrantLock 也可重入,但加锁和解锁需要手动进行,且次数需一样,否则其他线程无法获得锁。因为通过源码可以看出,获取到锁时,state值就会加1,释放锁就会减1,只有state等于0时,其他线程才可以获取到锁。
(3)synchronized不可响应中断,一个线程获取不到锁就一直等着;ReentrantLock可以响应中断。
(4)ReentrantLock可实现公平锁模式,即先入先执行。

最后

以上就是慈祥篮球最近收集整理的关于synchronized与ReetrantLock的区别的全部内容,更多相关synchronized与ReetrantLock内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部