gpt4 book ai didi

java - 并发读取共享对象中的只读字段并写入读/写字段

转载 作者:行者123 更新时间:2023-11-30 03:23:30 24 4
gpt4 key购买 nike

假设我有这个类(class):

public SharedObject {
private int readOnlyField;
private int readWriteField;

public SharedObject(int field1, int field2) {
this.readOnlyField = field1;
this.readWriteField = field2;
}

public getField1() {...}

public synchronized getField2() {...}

public synchronized setField2(...) {...}
}

我可以有多个线程同时使用这 3 个方法吗?

显然我可以使用最后两个同步方法,但我不确定 getField1() 是否可以与其他两个方法同时执行。

我认为答案是肯定的,但只是为了确定我是否遗漏了一些微妙之处。

最佳答案

对于getField1,它可以由2个线程同时执行,无需任何等待和同步。而且由于您没有任何 setter ,并且其值是在对象实例化时初始化的,因此脏读也不会发生变化。

对于 getField2setField2,没有 2 个线程,并且对同一个 SharedObject 实例同时执行这些方法。

希望这有帮助!!!

关于java - 并发读取共享对象中的只读字段并写入读/写字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30780327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com