lock(this)
>
在多线程应用程序中采用>使用
lock(this)
> 如果允许对对象的外部访问,则锁定
会创建漏洞。 没有对象引用对象的任何实体都可以在没有对象的创建者的知识或许可的情况下获取锁定。这种隐藏的依赖性使并行操作协调复杂化,大大增加了死锁风险。 this
封装妥协
使用直接通过公开暴露锁定机制来直接违反封装原则。 这使外部实体洞悉敏感的内部对象组件,有可能导致意想不到的后果并阻碍未来的修改或维护。
lock(this)
对不变性
的误解 >与常见的误解相反,锁定
this
使对象不可变或无法访问。锁定的物体仍然可变,其状态可以由外部参与者改变。
为了减轻这些风险,使用
语句中的私有字段而不是。这强制执行控制访问,并将锁定机构限制在对象边界内。 此外,避免将字符串用作锁定键,因为它们的不变性可能会导致共享访问和并发问题。lock
this
提供的示例代码突出显示了
>的危险
lock(this)
螺纹'a'进入
LockThis
>最后,thread'a'释放this
上的锁,允许更改名称。以上是为什么在多线程编程中锁定``锁定''?的详细内容。更多信息请关注PHP中文网其他相关文章!