请教关于java.util.ConcurrentModificationException 问题
源程序:
synchronized void cleanUp(){
AccountImpl obj;
long now = System.currentTimeMillis();
Set keys = unlocked.keySet();
Iterator it = keys.iterator();
while( it.hasNext()){
System.out.println("进入了while!");
//下面这句便是AccountObjectPool.cleanUp (AccountObjectPool.java:168)所指
obj = (AccountImpl)it.next();
if( ( now - ( ( Long ) unlocked.get( obj ) ).longValue() ) > expirationTime )
{
//当要被清除出资源池的时候更新数据库,重新写入数据库
try{
database.updateAccount(obj.id,obj.name,obj.balance);
}catch(SQLException exc){
exc.printStackTrace();
}
//存在时间
unlocked.remove( obj );
obj = null;
}
}
System.out.println("clearUp执行完毕!");
//启动垃圾收集,清除没有对象引用的对象
System.gc();
}
运行后出现:
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.next(HashMap.java:731)
at AccountObjectPool.cleanUp(AccountObjectPool.java:168)
at CleanUpThread.run(CleanUpThread.java:30)
请各位大侠指教!!!