java.util.ConcurrentModificationException
来源:互联网 发布:中奖概率算法 编辑:程序博客网 时间:2024/06/06 00:25
今天项目测出一条异常。
大概是这样的,我定义了一个List作为一个共享区域,一个线程负责向List添加,另一个线程负责遍历。
java.util.ConcurrentModificationException异常就是在遍历的时候抛出的。
上网查了原因,是迭代器没有和List的长度同步造成的。也就是说读线程在遍历的时候,写线程改变了List的长度,因而抛出异常。
读线程的错误代码:
ArrayList<String> List = new ArrayList<String>();
for(String str:List ){
//TODO...
}
for语句使用了Iterator这个对象,某一时刻Iterator并不知道List的实际长度,因为写线程不停的改变List长度。
解决
int len = List.size();
for(int i = 0;i < len;i++){
String str = List.get(i);
//TODO...
}
刚接触JAVA,第一次写日志。给自己留一个成长的脚印。
0 0
- 【ConcurrentModificationException】java.util.ConcurrentModificationException 解决办法
- java.util.ConcurrentModificationException! java.util.ConcurrentModificationException!
- java:java.util.ConcurrentModificationException
- 异常:java.util.ConcurrentModificationException
- java.util.ConcurrentModificationException异常
- java.util.ConcurrentModificationException异常
- java.util.ConcurrentModificationException 解决办法
- java.util.ConcurrentModificationException 异常
- 异常:java.util.ConcurrentModificationException
- 异常:java.util.ConcurrentModificationException
- java.util.ConcurrentModificationException
- java.util.ConcurrentModificationException
- java.util.ConcurrentModificationException
- java.util.ConcurrentModificationException
- java.util.ConcurrentModificationException
- java.util.ConcurrentModificationException
- java.util.ConcurrentModificationException
- java.util.ConcurrentModificationException 异常
- 数据库中CHAR,VARCHAR,TEXT等字段的区别
- 自动化打开并连接visual studio emulator for android,支持eclipse vs 以及as调试
- Android性能优化之使用SoftReference缓存图片
- VS2010中,无法嵌入互操作类型“……”,请改用适用的接口的解决方法
- Ubuntu配置Apache+PHP+MySQL
- java.util.ConcurrentModificationException
- 扑克牌的发牌功能,存储,以及显示,斗地主发牌
- HDU 5351 MZL's Border(找规律)
- iOS开发系列--网络开发
- jenkins+ant+resin自动化部署
- Linux服务器编程(1)
- Swift2.0中Json数据的解析教程
- 汉字按首字母排序
- 解决eclipse无法查看v4,v7-appcompat源码