juc——Lock简单使用

2019-02-20  本文已影响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

上一篇 下一篇

猜你喜欢

热点阅读