gpt4 book ai didi

java - 在 Java 中,我应该在 foreach 之前在本地复制一个 volatile 引用吗?

转载 作者:搜寻专家 更新时间:2023-10-30 19:42:55 26 4
gpt4 key购买 nike

如果我有以下内容

private volatile Collection<Integer> ints;

private void myMethod()
{
for ( Integer i : ints )
{
...
}
}

ints 集合永远不会改变,但整个集合可能会被另一个线程替换(因此它是一个不可变集合)。

我应该在迭代之前在本地复制 ints 变量吗?我不确定它是否会被多次访问。即迭代集合,另一个线程替换集合,代码继续迭代但使用新集合。

编辑:This question与有关 foreach 如何在内部工作的其他信息相关。

最佳答案

你不必。隐含地,该代码无论如何都会执行 ints.iterator(),并且从那时起仅在旧集合上使用该迭代器。

关于java - 在 Java 中,我应该在 foreach 之前在本地复制一个 volatile 引用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4498149/

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