社区
Java SE
帖子详情
线程安全集合类也有例外?
hellobbboy
2012-12-11 11:04:51
看了篇大大的文章,说,
线程安全类,如HashTable,Vector和通过Collections.synchronizedList()等方法获得的集合,
这些集合会当被迭代时,如果被其他线程访问,就会抛异常:ConcurrentModificationException。
这是真的假的啊,毁三观啊啊啊啊啊
求真人指点一二。
...全文
106
5
打赏
收藏
线程安全集合类也有例外?
看了篇大大的文章,说, 线程安全类,如HashTable,Vector和通过Collections.synchronizedList()等方法获得的集合, 这些集合会当被迭代时,如果被其他线程访问,就会抛异常:ConcurrentModificationException。 这是真的假的啊,毁三观啊啊啊啊啊 求真人指点一二。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
龙四
2012-12-11
打赏
举报
回复
HashTable,Vector和通过Collections.synchronizedList()等方法获得的集合对象本身是线程安全的,但没人跟你说其对应的Iterator也是线程安全的啊,已经是两个对象了
hellobbboy
2012-12-11
打赏
举报
回复
觉得楼上大哥说的好,看看还有高见某,让帖子再飞一会儿。。。
pywepe
2012-12-11
打赏
举报
回复
doc说的线程安全很多都指的是相对线程安全 不可变类才是绝对线程安全的 看下面的例子: Vector vector = new Vector(); thread 1: for(int i = 0 ; i < 1000 ; i ++){ vector.add("a"); Thread.sleep(1000); } thread 2: for(Object obj in vector){ ... } thread 1每次add,vector内部都在发生变化(写) 而thread 2都是在没有加锁的情况下遍历(读取)vector的 所以抛出 ConcurrentModificationException 并发修改异常 想要避免这个异常的话,就必须避免并发修改,即: Object lk = new Object(); thread 1: lock(lk){ for(int i = 0 ; i < 1000 ; i ++){ vector.add("a"); Thread.sleep(1000); } } thread 2: lock(lk){ for(Object obj in vector){ ... } }
hellobbboy
2012-12-11
打赏
举报
回复
有道理啊,这么理解容易多了。 这个线程安全还真是很坑爹的赶脚。。。
java高级(线程,集合框架,IO流)
针对已经学过"java大数据培训学校全套教材"前面课程的同学,(即已有 继承,接口嵌套类,异常基础的同学),本专题学习将起到承上启下的作用。 本专题覆盖 (线程,集合框架,IO流)从难度和重要程度来讲,都处于中等...
Java多线程(八)——
线程安全
的
集合类
如果多个线程同时修改
集合类
中的元素,那么很容易破坏...在下面,我们讨论一些Java支持的其他
线程安全
的
集合类
。 高效的映射,集合和队列 java.util.concurrent包里面实现了高效的映射、集合和队列的实现:ConcurrentHa
多线程(4)
线程安全
的集合
一、
线程安全
的集合 二、高效的映射、集合和队列 1、ConcurrentHashMap 2、ConcurrentSkipListMap 三、写数组的拷贝 四、旧的
线程安全
的集合 一、
线程安全
的集合 如果多线程要并发地修改一个数据结构,例如散...
什么是
线程安全
?
如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那就称这个对象时
线程安全
的。 该定义要求
线程安全
...
如何实现ArrayList的
线程安全
ArrayList用的太多了,几乎所有人都知道它是线程不安全的,但实际使用中,我们的多线程实现,普遍都是基于一些同步方法或者锁,很多场景其实并不需要关注ArrayList本身的
线程安全
。网上可以找到三种主流的实现...
Java SE
62,616
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章