外部类和内部类方法之间的锁定和同步?

外部类和内部类方法之间的锁定和同步?,第1张

部类和内部类方法之间的锁定和同步?

当多个线程要调用内部类方法时,它们将获取外部类对象的锁

没有。

或用于内部类对象

是。

以及如何修改该语句,以便我同步访问外部类对象/

加:

synchronized (OuterClass.this){}

在方法内部,但请注意,内部锁先于外部锁获取,如语法现在建议的那样。一致的锁定顺序对于防止死锁至关重要。您可能更喜欢先获取外部锁,在这种情况下,您应该这样做:

public void methodA(){    synchronized(OuterClass.this)    {        synchronized (this)        { // ...        }    }}

没有

synchronized
对方法本身进行声明。或者,如果您 想要外部锁,请执行以下 *** 作:

public void methodA(){    synchronized(OuterClass.this)    {        // ...    }}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5164260.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存