gpt4 book ai didi

java - 为什么你永远不应该在可选的 java 对象上使用 synchronized

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:52:31 25 4
gpt4 key购买 nike

我正在学习 java 可选包装器,为此我正在阅读以下内容 tutorial

但是我有一个简单的问题没有在文章中得到解答:在第 25 项:避免对可选对象使用身份敏感操作中,他们提到从不使用像这样的同步方式的可选对象:

Optional<Product> product = Optional.of(new Product());

synchronized(product) {

...

}

但没有解释为什么,所以请这里的任何人向我解释为什么这是一种不好的做法???

最佳答案

因为

[value-based classes] are freely substitutable when equal, meaning that interchanging any two instances x and y that are equal according to equals() in any computation or method invocation should produce no visible change in behavior"

Source (甲骨文)

如果 X 和 Y 其中之一存在内在锁定,则您不能随意替换它们,因为这样做可能会导致行为发生变化。

关于java - 为什么你永远不应该在可选的 java 对象上使用 synchronized,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56969810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com