Java中的对象同步

新生的

如果我在一个类中有一个同步方法,则同步仅应用于该类或该方法正在修改的对象。

例如,如果我有如下的A类

public class A {
    private int x;

    public void setX(int x) {
        this.x = x;
    }
}

并且有两个B和C类,它们具有某种方法来设置x的值。喜欢

public class B implements Runnable {

private A a;

public B(A a) {
    this.a = a;
}

public synchronized void setX(A a) {
    int tempX = 0;
    .... //Some logic to calculate tempX value
    a.setX(tempX);
}

@Override
public void run() {
    this.setX(a);

}

}

C类还将具有一个同步方法来设置x的值。

现在,如果我创建一个对象A并将相同的对象传递给B和C,那么同步是否也会在对象a上发生,或者我们需要同步类A的setX。

注意:由于我正在学习线程,所以如果问题听起来很愚蠢,请忍受。我只是想了解如果调用同步方法会发生什么情况。

达伍德·伊本·卡里姆

您显示的代码与的实例同步B大概您的其他方法将在的实例上同步C因此,您正在查看两个单独的锁-这些方法根本不会将彼此锁定,并且您还没有真正同步任何东西。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Java中同步对象

来自分类Dev

Java中的同步(对象和静态方法)

来自分类Dev

Java中对象的非同步方法?

来自分类Dev

在java中同步对象是如何工作的

来自分类Dev

跨对象的Java同步

来自分类Dev

跨对象的Java同步

来自分类Dev

如何同步从Java传递到C ++的C ++中的Java对象?

来自分类Dev

Java:在String对象上同步

来自分类Dev

Java同步和对象锁定

来自分类Dev

我们可以称之为同步Java中的对象的构造函数中的对象的方法?

来自分类Dev

JavaScript对象中的同步XMLHttpReqests

来自分类Dev

在Java中的实例同步

来自分类Dev

Java中的同步方法和同步块

来自分类Dev

Java中的同步和同步块

来自分类Dev

在Java中,“同步”是否等效于“同步(this)”?

来自分类Dev

Java-4个线程在两个同步方法中操作相同的对象数据

来自分类Dev

如何在Java中对来自不同对象的相等键进行同步

来自分类Dev

Java中方法,对象,类的同步

来自分类Dev

具有多个对象/锁的Java同步

来自分类Dev

Java同步方法未锁定对象

来自分类Dev

JVM中.class对象的同步范围

来自分类Dev

关于Java中的同步方法

来自分类Dev

高效同步Java中的列表

来自分类Dev

Java Collection中什么同步?

来自分类Dev

Java中的进程同步

来自分类Dev

Java中的同步实例方法

来自分类Dev

Web服务中的Java同步

来自分类Dev

在Java中同步单例

来自分类Dev

Java中的同步嵌套集合