Java 防止其他线程在写入期间访问对象
假设我有一个对象:Java 防止其他线程在写入期间访问对象,java,multithreading,concurrency,Java,Multithreading,Concurrency,假设我有一个对象: class Obj o{ public int x; public int y; } 线程调用该方法: update(Obj o, int x, int y){ o.x = x; o.y = y; } 如何防止其他线程在执行“更新”期间访问此对象的字段,并等待方法完成读取数据?您需要将Obj类的成员设置为私有,以便控制其访问权限。然后,将update方法移动到类中并声明它已同步。最后,在类中创建getX和getY方法,以获取值并声明它们已同步 使所有这些
class Obj o{
public int x;
public int y;
}
线程调用该方法:
update(Obj o, int x, int y){
o.x = x;
o.y = y;
}
如何防止其他线程在执行“更新”期间访问此对象的字段,并等待方法完成读取数据?您需要将Obj类的成员设置为私有,以便控制其访问权限。然后,将update方法移动到类中并声明它已同步。最后,在类中创建getX和getY方法,以获取值并声明它们已同步
使所有这些方法成为类的成员并同步它们将确保它们不能由不同的线程同时运行。一个简单的解决方案是使用同步方法。