Lock锁的使用
程序员文章站
2024-01-09 18:29:28
...
Lock锁的使用
首先简单介绍一下Lock锁
Lock是java1.5后的一个接口 咱们这使用它的一个接口实现**ReentrantLock**
private Lock lock=new ReentrantLock();
@Async("doSomethingExecutor")
public CompletableFuture<String> doSomething2(String message) throws InterruptedException {
lock.lock();
try {
for(int i = 0; i < 5; i++) {
System.out.println("当前线程名: "+ message);
Thread.sleep(2000);
}
}catch (Exception e){
}finally {
lock.unlock();
}
return CompletableFuture.completedFuture("do something2: "+message);
}
上面代码上有个细节 可能屏幕前的你也发现了 初始化锁代码lock.lock()是放在try上面的 是不是很纳闷为啥不全放里面 ,竟然提了一嘴就证明放里面是不对的,为什么呢? 你问我? 问对了 因为lock锁需要你手动初始锁打开锁跟释放锁,那么这里大家应该都知道把释放锁的代码lock.unlock();放入到finally里面吧 这里就别问为啥了啊 铁子咱别闹,重点看这里 不把lock.lock放入try里面是因为怕在初始锁打开锁的时候报错直接进入到finally执行释放锁的代码。
代码里面用到的@Async代码是异步执行的注解 关于该使用可以查看springboot @Async
日常笔记闲着记 能帮助到你是荣幸 欢迎大佬在评论区进行指导 谢谢!