小编Rom*_*les的帖子

为什么在锁定前复制引用?

我想知道为什么我们可以在java.util.concurrent类中看到这种类型的代码模式:

public class ArrayBlockingQueue...
    ...
    final ReentrantLock lock;
    ...
    public boolean offer(E e) {
    checkNotNull(e);
    final ReentrantLock lock = this.lock;
    lock.lock();
    try {
        ...
    } finally {
        lock.unlock();
    }
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么在调用lock()和unlock()方法之前我们必须复制对锁的引用,因为lock属性是final.

谢谢你的帮助,

罗曼.

java concurrency locking

5
推荐指数
0
解决办法
40
查看次数

标签 统计

concurrency ×1

java ×1

locking ×1