Java中的Lock锁

背景知识

在synchronized实现线程锁中,锁默认是开启的,当线程进入同步代码块/方法之后,锁自动关闭,当线程执行完同步代码块/方法后,锁又自己打开。

这种方法使用简单,但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁,为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对象Lock

Lock的实现提供比使用synchronized方法和语句可以获得更广泛的锁定操作
Lock中提供了获得锁和释放锁的方法(手动完成,非自动

  • void lock():获得锁
  • void unlock():释放锁(通常放在finally语句块中执行)

Lock是接口不能直接实例化,这里采用它的实现类ReentrantLock来实例化

具体用法

一般来说unlock方法会放在finally代码块中
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值