美文网首页
juc——Lock简单使用

juc——Lock简单使用

作者: 大黑跟小白的日常 | 来源:发表于2019-02-20 11:21 被阅读3次

ReentrantLock:一个可重入的互斥锁,为Lock接口的主要实现。

多线程并发同一个Lock下,使用Lock中的方法,可以保证同步;

简单使用如下

需要保证的是,多线程并发竞争的是同一个Lock,这样Lock才能锁得住。

具体Lock中方法介绍

1、void lock(),获取一个锁,如果锁当前被其他线程获得,当前的线程将被休眠。

2、boolean tryLock(),尝试获取一个锁,如果当前锁被其他线程持有,则返回false,不会使当前线程休眠。

3、boolean tryLock(long timeout,TimeUnit unit),如果获取了锁定立即返回true,如果别的线程正持有锁,会等待参数给定的时间,在等待的过程中,如果获取了锁定,就返回true,如果等待超时,返回false。

4、void lockInterruptibly(),如果获取了锁,立即返回;如果没有获取锁,当前线程处于休眠状态,直到获取锁,或者当前线程被别的线程中断。

也可以这样使用Lock:尝试获取锁

tryLock()方法是有返回值的,它表示用来尝试获取锁,如果获取成功,则返回true,如果获取失败(即锁已被其他线程获取)则返回false,也就说这个方法无论如何都会立即返回。在拿不到锁时不会一直在那等待

详细介绍

https://blog.csdn.net/qq_36974281/article/details/81986973

https://blog.csdn.net/si444555666777/article/details/82185255

相关文章

  • juc——Lock简单使用

    ReentrantLock:一个可重入的互斥锁,为Lock接口的主要实现。 多线程并发同一个Lock下,使用Loc...

  • juc-locks框架之接口

    juc-locks锁框架中一共就三个接口:Lock、Condition、ReadWriteLock 一、Lock接...

  • JUC-Lock

      公平锁:多个线程按照申请锁的顺序获取锁,类似于队列。  非公平锁:上来直接尝试占有锁,如果尝试失败,再采用类似...

  • JUC-Lock

    什么是JUC 就是jdk为了操作多线程的一个工具包的简称 通过代码对比Lock和Synchronizied的用法和...

  • 理解J.U.C中的ReentrantLock

    JUC(java.util.concurrent工具包的简称) Lock(synchronized) Reentr...

  • JUC中LOCK接口

    使用LOCK前先回顾Synchronized(同步)关键字,这是一个重锁不建议使用. 运行结果: 从上面结果可以看...

  • JUC-Synchronized & Lock

      Synchronized与Lock区别: Synchronized是关键字,属于JVM层面(monitor对象...

  • Lock和Synchronized区别底层原理分析

    Lock是java5后出现的,是在juc包。synchronized实现原理其实就是通过monitorenter和...

  • JUC常见并发工具

    1.Condition JUC Lock 线程间通信工具类 执行结果: 流程图image.png 2.CountD...

  • JUC详解(二)并发集合(2)ConcurrentSkipLis

    JUC包含几个部分? 1)Lock框架 2)并发集合 3) 原子类 4) 线程池 5)工具类、ThreadLoca...

网友评论

      本文标题:juc——Lock简单使用

      本文链接:https://www.haomeiwen.com/subject/xpoxyqtx.html