在引用的同步块(synchronized block)中更新引用是否有效? 例如:
Synchronized(list)
{
list = new ArrayList();
}
最佳答案
当你写的时候
synchronized (list)
锁是一个对象,而不是变量/字段列表
。
如果你这样做
synchronized (list) {
list = new ArrayList<>();
}
您正在创建一个新对象,并重新分配一个变量/字段 - 但您没有更改锁 - 锁仍然是之前的同一个对象。
关于Java同步块(synchronized block),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36627649/