new ReentrantLock();
时间: 2024-07-31 19:01:39 浏览: 44
java ReentrantLock详解
`ReentrantLock`是Java并发包中提供的一个可重入互斥锁(reentrant mutex)实现。它提供了一种更细粒度、更灵活的锁机制,相比传统的`synchronized`关键字,`ReentrantLock`支持更多的特性:
1. **可中断**:可以中断正在阻塞尝试获取锁的线程,使其返回一个异常。
2. **公平与非公平模式**:默认是非公平模式,即线程获得锁的优先级取决于它在锁上等待的时间长短;公平模式则会按照线程请求锁的顺序分配。
3. **条件变量(Condition)**:可以附加到锁上,用于同步复杂的场景,如生产者消费者模型。
4. **原子状态检查**:可以通过`tryLock()`等方法检查锁是否已经被其他线程持有而无需尝试获取,提高了效率。
创建`ReentrantLock`实例通常是这样的:
```java
ReentrantLock lock = new ReentrantLock();
```
这个操作会初始化一个新的`ReentrantLock`实例,它可以在后续的程序中被获取和释放来管理对共享资源的访问。
阅读全文