ReentrantLock lock = new ReentrantLock(true);
时间: 2024-07-18 19:00:36 浏览: 55
ReentrantLock解析
`ReentrantLock` 是 Java 中的一个高级互斥锁,它是 `java.util.concurrent.locks` 包下的一个实现。创建一个 `ReentrantLock` 对象并传入 `true` 参数,意味着这个锁默认是以公平模式 (`fairness` 设置为 `true`)获取的。
1. **公平模式**:在公平模式下,线程按照它们请求锁的顺序获取,先到达的线程优先获得。这通常用于并发控制,确保资源的公平访问。
2. **非公平模式**:默认情况下,如果 `true` 参数未提供,`ReentrantLock` 采用非公平模式。在这种模式下,线程获取锁的顺序取决于线程调度,而不是请求锁的顺序。
当你使用 `lock = new ReentrantLock(true)` 时,你可以期望更有序的线程访问,但可能会牺牲一部分性能,因为线程调度器需要考虑更多的因素。在多线程环境中,你可能需要根据具体场景和需求来选择公平或非公平模式。
阅读全文