假设我有一个对象:
class Obj o{
public int x;
public int y;
}
并且一个线程调用该方法:
update(Obj o, int x, int y){
o.x = x;
o.y = y;
}
如何防止其他线程在执行“update”期间访问该对象的字段并等待该方法完成后再读取数据?
最佳答案
您需要将 Obj 类的成员设置为私有(private),以便您可以控制他们的访问权限。然后,将 update() 方法移到类中并声明它是同步的。最后,在类中创建 getX() 和 getY() 方法来获取值并声明它们是同步的。
使所有这些方法成为类的成员并同步它们将确保它们不能“同时”由不同的线程运行。
关于java - 防止其他线程在写入期间访问对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45736735/