synchronized和ReentrantLock的区别或不同?--面试高频考点

synchronized和ReentrantLock的区别或不同?

1.ReentrantLock是显示获取和释放锁,必须在fiinally语句块中加入释放锁操作,synchronized是隐式锁,
2.ReentrantLock可响应中断,为处理锁提供了灵活性
3.ReentrantLock是API级别的,synchronized是JVM级别的
4.二者底层实现不一样,synchronized是同步阻塞,采用悲观并发策略。ReentrantLock是同步非阻塞的,采用乐观并发策略。
5Lock是一个接口,synchronized是一个关键字。
6.通过Lock能知道是否获取锁isLock()方法,synchronized不能
7.Lock可以分别定义读写锁提高多个线程读操作的效率

原创文章 41 获赞 11 访问量 1493

猜你喜欢

转载自blog.csdn.net/weixin_44038332/article/details/105279248