欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

日常笔记闲着记 能帮助到你是荣幸 欢迎大佬在评论区进行指导 谢谢!

相关标签: java lock