gpt4 book ai didi

java - 同步方法参数

转载 作者:行者123 更新时间:2023-12-03 08:20:03 25 4
gpt4 key购买 nike

我有一个非常基本的方法,

//do stuff
}

。我遇到了新报价会更新订单的问题,因此我想同步订单参数。所以我的代码会喜欢:

handleOrder(IOrder order) {
synchronized(order){
//do stuff
}
}

然而现在,intellij 提示说:

Synchronization on method parameter 'order'
Inspection info: Reports synchronization on a local variable or parameter. It is very difficult to guarantee correctness when such synchronization is used. It may be possible to improve code like this by controlling access through e.g. a synchronized wrapper class, or by synchronizing on a field.

这是我真正需要关心的事情吗?

最佳答案

是的,因为这种类型的同步通常表明无法轻松审查代码以确保不会发生死锁。

当您在字段上进行同步时,您将同步代码与正在使用的实例组合在一起,从而允许您在同一文件中拥有大多数(如果不是全部)竞争方法。这样可以更轻松地检查文件是否存在同步方法中的死锁和错误。当使用同步包装类时,同样的想法也适用。

当您在传递的实例(本地字段)上进行同步时,您需要检查整个应用程序的所有代码,以便在同一实例上进行其他同步工作,以获得未犯错误的相同级别的安全性。此外,必须经常执行此操作,因为几乎无法保证在下一次提交后,开发人员将执行相同的代码扫描,以确保他们的同步不会影响某些远程目录中的代码(或即使在其计算机上没有源代码的远程 JAR 文件中)。

关于java - 同步方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68121308/

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