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















网友评论