class A {
public synchronized void myOneMethod() {
// ...
}
}
class B extends A {
public synchronized void myOtherMethod() {
// ...
}
}
// ...
B myObject;
// ...
myObject.myOneMethod(); // acquires lock
myObject.myOtherMethod(); // same lock?
我对同步模型的理解是,可以,因为锁/监视器与实例myObject关联,并且在哪里定义方法都没有关系。但是我说的对吗?如果没有,为什么?如果是,您为什么确定,但我不确定?:-)
是的,您是对的,您也得到了正确的解释。没什么可补充的。
请注意,如果方法是static,则它们将在不同的对象(即它们各自的类(A和B))上同步。
编辑:我为什么确定?我不知道,你为什么不确定?;-) myObject
只是一个对象- myObject
来自类A 的属性和来自类B 的属性之间没有任何区别。(从技术上讲,您可能可以使用反射来找出哪些是哪个,因此必须有有一些区别,但现在暂时不用思考。对于对象的常见操作没有区别。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句