【发布时间】:2011-02-10 12:41:09
【问题描述】:
我正在查看这段代码。此构造函数委托给本机方法“System.arraycopy”
线程安全吗?我的意思是它可以抛出 ConcurrentModificationException 吗?
public Collection<Object> getConnections(Collection<Object> someCollection) {
return new ArrayList<Object>(someCollection);
}
如果被复制的集合是 ThreadSafe 的,例如 CopyOnWriteArrayList,会有什么不同吗?
public Collection<Object> getConnections(CopyOnWriteArrayList<Object> someCollection) {
return new ArrayList<Object>(someCollection);
}
编辑: 我知道 ThreadSafe != ConcurrentModificationException。我正在尝试在某个时间点拍摄数据快照。因此,如果另一个线程通过副本中途写入 someCollection,我不在乎结果是否具有新对象。我只是不希望它抛出 ConcurrentModificationException 或更糟
【问题讨论】:
标签: java collections concurrency