如果列表在doSomething()中被修改,此代碼將拋出併發修改異常。是否可以通過將代碼封裝在某個同步塊中來避免它?迭代器併發修改異常
List l = Collections.synchronizedList(new ArrayList());
// normal iteration -- can throw ConcurrentModificationException
// may require external synchronization
for (Iterator i=list.iterator(); i.hasNext();) {
doSomething(i.next());
}
「請注意,此異常不會始終指出對象已經由不同的* *線程併發修改。」所以這將是一個不。 – 2010-02-12 08:32:59
何時可以引發此異常。 – 2010-02-12 09:23:04
如果doSomething()在相同或不同的線程中修改'list'。 ConcurrentModificationException與線程無關。 – Robin 2010-02-12 14:49:01