深入源码解析 ReentrantLock、AQS:掌握 Java 并发编程关键技术
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class ReentrantLockExample {
private static final Lock lock = new ReentrantLock();
public static void main(String[] args) {
lock.lock(); // 获取锁
try {
// 临界区代码
System.out.println("ReentrantLock 正在被线程 " + Thread.currentThread().getName() + " 所持有");
} finally {
lock.unlock(); // 释放锁,确保释放锁操作不会由于异常而遗漏
}
}
}
这段代码演示了如何使用ReentrantLock
来进行同步。首先,我们创建了一个ReentrantLock
实例,然后在main
方法中通过调用lock
方法获取锁,执行临界区代码后,通过unlock
方法释放锁。这里使用了try-finally
语句块来确保即使临界区代码抛出异常,锁也能被释放。这是一个标准的锁使用模式,对于理解如何在Java中使用ReentrantLock
和理解Java并发非常重要。
评论已关闭