Java 同步引用

2024-03-20

我有A级和B级。

public class A() { 
    private static List<int> list = new ArrayList<int>(); 
    public static List<int> getList() {
        return list;
    }
}

public class B() { 
    public void foo() {
        synchronized(A.getList()) {
            // DO Stuff
        }
    }
}

在我同步的 B 类中。这是在 A 的列表上同步,还是在 B 对 A 的列表的引用上同步。我认为是后者,但需要一些帮助。

如果是这样,那么我如何完成与此类似的实际可行的事情?

Thanks!


它在 A 的列表上同步。 B 引用 A 的列表是什么意思?无论您是在 A 中使用 list 还是在 B 中使用 A.getList(),它们都引用同一个对象。当您对其进行同步时,您将阻止其他线程在同一对象上同步,无论它是从何处引用的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 同步引用 的相关文章

随机推荐