我有如下提到的类(class):
public class Test {
public Test1 a;
public Test2 b;
}
现在我有 2 个线程。
线程 1 修改“Test1”,线程 2 修改“Test2”
是否存在数据损坏的可能性,即当线程 1 正在修改“Test1”类时,但线程 2 进入并开始修改“Test2”,因此更改丢失或数据损坏/更新不完整?
最佳答案
在您描述的场景中,不会出现任何数据损坏,因为两个修改范围是不相交的。仅当一个线程尝试访问另一线程正在修改的数据时,才会出现问题。修改 Test1
不会影响 Test
或 Test2
。
关于java - 两个线程使用同一对象但修改该对象的单独属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42384775/