gpt4 book ai didi

Java:外部类和内部类之间的同步

转载 作者:行者123 更新时间:2023-12-02 11:16:38 24 4
gpt4 key购买 nike

我有类似于以下的代码:

class OuterClass
{
private final AtomicInteger count = new AtomicInteger(0);

private class InnerClass extends TimerTask
{
public void run()
{
......
......
incremenetCount();
}
}

public void doSomething()
{
.......
.......
incremenetCount();
}

private void incrementCount()
{
count.incrementAndGet();
}
}

从内部类调用 incrementCount 与从外部类中的任何其他函数调用它是否相同,因为同步实际上是围绕变量 count 进行的?

最佳答案

Is calling incrementAndCount from inner class the same as calling it from any other function in outer class [...]

是的,从内部类调用 incrementCount() 与从外部计数调用 incrementCount() 相同。

所有非静态内部类都有对封闭类的对象的隐式引用,并且通过此引用将调用 incrementCount()

(如果你的内部类是静态,那么故事就会有所不同。)

as the synchronization is actually around the variable count?

没关系。无论您是从内部类还是外部类进行调用,都会在同一个对象上调用相同的方法。

关于Java:外部类和内部类之间的同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10309462/

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