是的-这意味着您可以看到 所有可能获得该锁的代码 (不考虑反射的可能性)。
如果您锁定
this(这是我假设您通过“固有锁定”所指的),那么其他代码可以做到:
MonitorLock foo = new MonitorLock();synchronized(foo) { // Do some stuff}
该代码可能与
MonitorLock自己的代码相距很远,并且可能调用其他方法,这些方法又将监视器带走。在这里很容易陷入死锁领域,因为您不容易看到要获取哪些锁。
使用“私人”锁,您可以轻松查看获得该锁的 每段代码 ,因为它们都在内
MonitorLock。因此,更容易推断出该锁定。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)