Java 并发编程:ReentrantLock 锁与 AQS
import java.util.concurrent.locks.ReentrantLock;
public class ReentrantLockExample {
private final ReentrantLock lock = new ReentrantLock();
public void doLockedWork() {
lock.lock(); // 获取锁
try {
// 在这个区块中执行需要同步的代码
// ...
} finally {
lock.unlock(); // 释放锁,确保释放锁操作总是执行
}
}
public static void main(String[] args) {
ReentrantLockExample example = new ReentrantLockExample();
example.doLockedWork();
}
}
这段代码展示了如何使用ReentrantLock
来进行同步。通过调用lock()
方法获取锁,并在finally
块中调用unlock()
确保释放锁,即使在执行同步代码时抛出异常也不会导致锁无法释放,这是一个良好的锁使用实践。
评论已关闭