【发布时间】:2018-03-26 10:59:03
【问题描述】:
我正在阅读 java 官方 doc 关于 wrappers 的实现,它们是 Collections 中用于获取同步集合的静态方法,例如:List<Type> list = Collections.synchronizedList(new ArrayList<Type>());
...
我不明白的是以下内容(我引用了 java doc):
以这种方式创建的集合与通常同步的集合(例如 Vector)一样,每一点都是线程安全的。 面对并发访问,用户在迭代返回的集合时必须手动同步。原因是迭代是通过对集合的多次调用来完成的,它必须组合成一个原子操作......
如何在迭代时每一点都是线程安全的需要手动同步??
【问题讨论】:
-
这意味着当迭代一个正常同步的集合(例如 Vector)时,您还必须手动同步返回的集合。
标签: java collections java.util.concurrent