gpt4 book ai didi

java - CopyOnWriteArrayList 可以与可变对象一起使用吗?

转载 作者:行者123 更新时间:2023-12-03 12:56:43 26 4
gpt4 key购买 nike

我正在使用一个集合

    CopyOnWriteArrayList<X> myCOW =  new CopyOnWriteArrayList<X>();

其中 X 是一个可变对象。我从 Java Concurrency in Practice 中了解到“写时复制集合的线程安全性源于这样一个事实,即只要正确发布了有效的不可变对象(immutable对象),访问它时就不需要进一步同步。”

我遍历集合:
   for (X x : myCOW) {
if (conditionIsMet) {
x.modify(); // modify() is a synchronized method in class X
}
}

我的问题是,这种做法是否会让我面临线程安全问题?我猜不是,因为 X 的 modify() 方法是同步的。

谢谢。

最佳答案

如果你有一个线程安全的类和集合,它们可以以线程安全的方式一起使用。可能有问题,但我在你的例子中看不到任何问题。

关于java - CopyOnWriteArrayList 可以与可变对象一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9663679/

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