我很好奇与 Java 方法同步和对象锁定有关的事情。
当您调用同步方法时,据我了解,它会在方法调用期间锁定整个对象。
这是否意味着您只需要同步将数据写入对象的方法,而不需要从对象中读取数据?
public class testclass {
private ArrayList<String> data;
public ArrayList<String> getData() {
return data;
}
public synchronized void setData(ArrayList<String> data) {
this.data = data;
}
}
基本上上面的代码是线程安全的(因为 testclass 对象在运行 setData 方法时被锁定)?还是我也应该同步 getData 方法?