ReentrantLock用法
时间: 2024-01-12 15:53:24 浏览: 168
Java中ReentrantLock的使用.docx
ReentrantLock是Java中的一种锁机制,它支持可重入锁和条件变量,并且比synchronized更灵活。ReentrantLock用法如下:
1. 创建ReentrantLock对象
```java
ReentrantLock lock = new ReentrantLock();
```
2. 获取锁
```java
lock.lock();
```
3. 释放锁
```java
lock.unlock();
```
4. 尝试获取锁,如果锁已被其他线程占用,则等待一段时间,如果超时则返回false
```java
boolean tryLock = lock.tryLock(1000, TimeUnit.MILLISECONDS);
```
5. 使用条件变量
```java
Condition condition = lock.newCondition();
condition.await(); //等待条件变量
condition.signal(); //唤醒等待条件变量的线程
```
6. 可以对锁进行中断
```java
lock.lockInterruptibly(); //如果锁已被其他线程占用,则等待锁,可以被中断
```
阅读全文