为什么在私有锁上使用私有锁?

为什么在私有锁上使用私有锁?,第1张

为什么在私有锁上使用私有锁?

是的-这意味着您可以看到 所有可能获得该锁的代码 (不考虑反射的可能性)。

如果您锁定

this
(这是我假设您通过“固有锁定”所指的),那么其他代码可以做到:

MonitorLock foo = new MonitorLock();synchronized(foo) {    // Do some stuff}

该代码可能与

MonitorLock
自己的代码相距很远,并且可能调用其他方法,这些方法又将监视器带走。在这里很容易陷入死锁领域,因为您不容易看到要获取哪些锁。

使用“私人”锁,您可以轻松查看获得该锁的 每段代码 ,因为它们都在内

MonitorLock
。因此,更容易推断出该锁定。



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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存