【java】 synchronizd与ReentrantLock的区别与联系

本文详细探讨了synchronized与ReentrantLock的关系及区别,解析了它们作为独占锁的不同实现方式,强调了ReentrantLock在响应中断、支持超时等方面的优越性,并介绍了ReentrantReadWriteLock这一高级特性。

面试题:synchronized与ReentrantLock的关系和区别。

  1. 关系:
    • synchronized与ReentrantLock都属于独占锁的实现,都属于可重入锁。
  2. 区别:
    • synchronized 是关键字,JVM层面的实现,ReentrantLock是java语言层面的实现。
    • ReentrantLock具备一些synchronized不具备的特性,如响应中断,支持超时,支持非阻塞式获取锁,可以实现公平锁(默认为非公平锁)。
    • synchronized只有一个等待队列,而Lock调用newCondition()可以产生多个等待队列(实现生产者消费者模型,利用Condition的await/signal实现等待唤醒)。

问题:synchronized与Lock 有什么区别。

基本与上面相同,不过Lock中还有一个ReentrantReadWriteLock:可重入读写锁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值