gpt4 book ai didi

java - 多线程正确性——同步不一致

转载 作者:行者123 更新时间:2023-12-02 12:18:53 24 4
gpt4 key购买 nike

这有什么问题吗?

public final void setListValid(final List<ValidRes> listValidRes) {
this.listValidRes = listValidRes;
}

Sonar 对我大喊:

xxx.listValidRes同步不一致;锁定 50% 的时间

有人知道我需要做什么吗?

最佳答案

问题中给出的代码没有同步。我假设您在代码中其他位置的 this.listValidRes 上进行同步。这正是 Sonar 告诉您的:如果您对某个资源进行同步,请在所有使用中进行同步,或者根本不进行同步,并让其他人来处理它。

基本上这是一个设计决策:

  • 您可以选择同步并让客户端费心。优点是无需同步,速度会明显加快。因此,如果您的类在单线程设置中使用,最好放弃同步。 但是清楚地记录它不是线程安全的,或者客户端使用它多线程并提示奇怪的错误......

    <
  • 如果您选择(或必须)同步,则在每次使用关键资源时执行同步。有不同的方法可以实现这一目标。也许您想显示实际上已同步的资源的使用情况。也许我或其他人可以给你一些好的建议。

关于java - 多线程正确性——同步不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16795142/

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