// Java加锁示例代码
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class Counter {
private int count = 0;
private final Lock lock = new ReentrantLock(); // 创建一个ReentrantLock对象
public void increment() {
lock.lock(); // 加锁
try {
count++;
} finally {
lock.unlock(); // 确保在finally块中释放锁
}
}
public int getCount() {
return count;
}
}
Lock
接口提供了比内置同步更灵活的锁定机制,而ReentrantLock
是Lock
接口的一个实现。它可以显式地加锁和解锁。lock()
方法来获取锁,确保同一时间只有一个线程可以执行临界区的代码。try-finally
块确保即使发生异常也能正确释放锁。unlock()
方法必须放在finally
块中,以保证锁总是会被释放。count
变量。希望这段代码和解释对你有帮助!
上一篇:java 17新特性
下一篇:java 两个对象相同属性赋值
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站