我在写一些代码
class A {
Integer x;
String y
}
我创建了一个A对象,并将其传递给2个可运行线程。第一个线程更新值x,而第二个线程更新值y。
有什么情况可以打破这种情况吗?我的意思是,如果有两个线程更新同一对象的不同变量,是否会出现争用情况?
最佳答案
不,可以正常工作。只要任何给定变量仅由一个线程更新(在某些条件下其他线程读取该变量),您就可以。
根据您的工作,它可能不是最容易理解的设计-而且,正如我上文提到的那样,如果您希望查看原子对象或volatile,也不要指望从另一个线程可靠地读取这些变量。 (对于从多个线程进行写入,原子性将更快,如果仅从一个线程进行写入而从其他线程中进行读取,则volatile可能会更好)
关于java - Java-同一对象,不同变量,多个线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45642510/