当多个线程要调用内部类方法时,它们将获取外部类对象的锁
没有。
或用于内部类对象
是。
以及如何修改该语句,以便我同步访问外部类对象/
加:
synchronized (OuterClass.this){}
在方法内部,但请注意,内部锁先于外部锁获取,如语法现在建议的那样。一致的锁定顺序对于防止死锁至关重要。您可能更喜欢先获取外部锁,在这种情况下,您应该这样做:
public void methodA(){ synchronized(OuterClass.this) { synchronized (this) { // ... } }}
没有
synchronized对方法本身进行声明。或者,如果您 只 想要外部锁,请执行以下 *** 作:
public void methodA(){ synchronized(OuterClass.this) { // ... }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)