java - 两个线程使用同一对象但修改该对象的单独属性

标签 java multithreading

我有如下提到的类(class):

 public class Test {
     public Test1 a;
     public Test2 b;
 }

现在我有 2 个线程。

线程 1 修改“Test1”,线程 2 修改“Test2”

是否存在数据损坏的可能性,即当线程 1 正在修改“Test1”类时,但线程 2 进入并开始修改“Test2”,因此更改丢失或数据损坏/更新不完整?

最佳答案

在您描述的场景中,不会出现任何数据损坏,因为两个修改范围是不相交的。仅当一个线程尝试访问另一线程正在修改的数据时,才会出现问题。修改 Test1 不会影响 TestTest2

关于java - 两个线程使用同一对象但修改该对象的单独属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42384775/

相关文章:

java - add/*package*/in package 私有(private)类

java - J2ME 是否支持 HTTP PUT?

eclipse - OSX 10.7 Lion 上的 JDK

java - 同步您正在修改的静态字段是否会使您的代码线程安全?

multithreading - 为什么我的事件监视器显示 Node.js 使用多线程?

java - 当我猜错单词时,为什么我的菜单不显示?

java - 用java实现 vector 乘法

windows - 何时或如何删除 Qt 中的 QThread

python - 这是子类化 python 线程以接受变量更新的有效方法吗?

python - 异步并发地播放不同音高的声音