我最初认为该问题的正确答案是A,因为m2可以部分使用并调用语句C,而如果m1中不存在"b",那么锁"a"和"b"不会相互保护,会调用语句B。
我认为C是错误的,因为同步方法不应该使用类本身作为锁,这样当m2被同步使用时,如果它被同步,就不能进入类。
现在我想知道我对C的假设是否正确。因为虽然它正在使用自身作为锁,但是m1正在使用b作为锁来保护语句B。这意味着有两个监视器("B"和"this"),从而导致冲突,使C成为正确的答案?但我也很确定A也是正确的。
如果您发现我的推理有任何缺陷,请告诉我,或者如果您知道正确答案及其原因,请告诉我。