它的方法来自 CopyOnWriteArrayList.class
public synchronized boolean set(E e) {
Object[] newElements = elements.clone();
@SuppressWarnings("unchecked")
E result = (E) newElements[index];
newElements[index] = e;
elements = newElements;
return result;
}
好的,可以说我有
final List<MyType> list = new CopyOnWriteArrayList();
我有方法
public void update(Task task) {
synchronized (tasksList) {
int index = tasksList.indexOf(task);
validateIndex(index);
tasksList.set(index, task);
}
}
我认为比 copyOnWriteArrayList 同步方法“设置”上(this)
在我的方法中,我锁定了我的列表(同步(tasksList))为什么方法工作正确。我认为行( tasksList.set(index, task); )将不起作用,因为 tasksList 已经阻止了上面的行