gpt4 book ai didi

java - 如何协调多个类对私有(private)对象的同步

转载 作者:行者123 更新时间:2023-11-30 06:28:28 26 4
gpt4 key购买 nike

众所周知,建议在 final private 上同步对象(相对于在 this 甚至 protected 数据成员上同步)。

但是当我的应用程序中有多个类(模块)需要在一个公共(public)对象上同步时会发生什么?

有没有办法调和这两个看似矛盾的要求?

为了更好地解释,如果我将 Owner 类的私有(private)数据成员定义为:

private final Object $01pfo = new Object[0]; 

然后 Owner 中的任何方法都可以简单地使用它:

  protected void anyMethod()  {
synchronized ($01pfo) {
// do your thing
}
}

但是如果我想从不同的类(比如 User)在 $01pfo 上同步,是我制作 $01pfo 的唯一选择 protected 还是公开?

protected final Object $01pfo = new Object[0]; 

有更好的方法吗?还是解决方案?

最佳答案

我考虑使用 protected 关键字的包隐私作为 hack。在您的用例中,这些类似乎正在协作以同步方式执行特定任务。我会在启动此任务的类/方法中定义一个 Lock 对象,并使 Lock通过作为构造函数参数传递,所有涉及的类都可以使用对象。

关于java - 如何协调多个类对私有(private)对象的同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12518599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com