Mik*_*e Q 14 java foreach multithreading volatile
如果我有以下内容
private volatile Collection<Integer> ints;
private void myMethod()
{
for ( Integer i : ints )
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
int集合永远不会改变,但整个集合可能被另一个线程所取代(所以它是一个不可变的集合).
在迭代之前,我应该在本地复制ints变量吗?我不确定它是否会被多次访问.即迭代集合,另一个线程替换集合,代码继续迭代但使用新集合.
编辑:此问题与foreach如何在内部工作的其他信息相关.
| 归档时间: |
|
| 查看次数: |
486 次 |
| 最近记录: |