gpt4 book ai didi

Java多线程ConcurrentModificationException

转载 作者:行者123 更新时间:2023-12-02 01:07:49 25 4
gpt4 key购买 nike

我有几个并行运行的测试,并使用下面的方法。请参阅下面的代码,它偶尔会抛出 ConcurrentModificationException。我不明白这是怎么发生的?


private static MyObject myObject;

public void setupMyObject{
syncronized(this){
myObject = Optional.ofNullable(myObject).orElse(SomeConfig.ofDefaults());
}
}


最佳答案

myObject 是一个静态变量,要锁定它,您需要将类对象放入同步中。您当前的实现无法正确锁定它。

import java.util.Optional;

public class Test {

private static String myObject;

public void setupMyObject(){
synchronized(Test.class){
myObject = Optional.ofNullable(myObject).orElse(SomeConfig.ofDefaults());
}
}

}

关于Java多线程ConcurrentModificationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59795905/

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