引API的一句话:
返回指定列表支持的同步(线程安全的)列表。为了保证按顺序访问,必须通过返回的列表完成所有对底层实现列表的访问。
在返回的列表上进行迭代时,用户必须手工在返回的列表上进行同步:
List list = Collections.synchronizedList(new ArrayList());
...
synchronized(list) {
Iterator i = list.iterator(); // Must be in synchronized block
while (i.hasNext())
foo(i.next());
}
不遵从此建议将导致无法确定的行为。
如果指定列表是可序列化的,则返回的列表也将是可序列化的。
这点在Collections.synchronized*方法都一样,在遍历时必须对集合再进行一次同步,防止其他线程修改集合元素。
本文深入探讨了使用Collections.synchronizedList方法在Java中实现线程安全列表的原理,强调了在遍历时对集合进行同步的必要性,并解释了其对序列化列表的影响。
2607

被折叠的 条评论
为什么被折叠?



