集合在单线程,一个循环内,有添加又删除会出现此异常。
多线程时,在不同的循环操作同一个集合,会出现此异常。
因为,集合长度发生改变时,在迭代器未结束前,迭代器的大小不会发生变化。
1、保证在同一个进程 或 锁
2、保证迭代中只有一种操作
3、集合.remove() 每次迭代只能remove一个元素
4、迭代器.remove()要满足条件1、2
本文共 223 字,大约阅读时间需要 1 分钟。
集合在单线程,一个循环内,有添加又删除会出现此异常。
多线程时,在不同的循环操作同一个集合,会出现此异常。
因为,集合长度发生改变时,在迭代器未结束前,迭代器的大小不会发生变化。
1、保证在同一个进程 或 锁
2、保证迭代中只有一种操作
3、集合.remove() 每次迭代只能remove一个元素
4、迭代器.remove()要满足条件1、2
转载于:https://www.cnblogs.com/verlout/p/9805934.html