【问题标题】:Prevent other threads access object during write在写期间防止其他线程访问对象
【发布时间】:2017-08-18 06:28:40
【问题描述】:

假设我有一个对象:

class Obj o{ 
  public int x;
  public int y;
}

一个线程调用该方法:

update(Obj o, int x, int y){
  o.x = x;
  o.y = y;
}

如何防止其他线程在执行“更新”期间访问该对象的字段并等待方法完成读取数据?

【问题讨论】:

标签: java multithreading concurrency


【解决方案1】:

您需要将 Obj 类的成员设为私有,以便您可以控制他们的访问。然后,在类中移动 update() 方法并将其声明为同步。最后,在类中创建 getX() 和 getY() 方法来获取值并声明它们同步。

使所有这些方法成为类的成员并同步它们将确保它们不能“同时”由不同的线程运行。

【讨论】:

    猜你喜欢
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-10
    • 2012-07-22
    • 1970-01-01
    相关资源
    最近更新 更多