社区
Java SE
帖子详情
线程安全集合类也有例外?
hellobbboy
2012-12-11 11:04:51
看了篇大大的文章,说,
线程安全类,如HashTable,Vector和通过Collections.synchronizedList()等方法获得的集合,
这些集合会当被迭代时,如果被其他线程访问,就会抛异常:ConcurrentModificationException。
这是真的假的啊,毁三观啊啊啊啊啊
求真人指点一二。
...全文
128
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超强笔记
此外,多线程编程也是Java的一大亮点,笔记会介绍线程的创建与同步机制,如synchronized关键字和wait/notify机制。 文件I/O操作是任何编程语言都不可或缺的部分,Java也不
例外
。笔记会讲解如何在Java中读写文件,...
Java多线程(八)——
线程安全
的
集合类
如果多个线程同时修改
集合类
中的元素,那么很容易破坏...在下面,我们讨论一些Java支持的其他
线程安全
的
集合类
。 高效的映射,集合和队列 java.util.concurrent包里面实现了高效的映射、集合和队列的实现:ConcurrentHa
多线程(4)
线程安全
的集合
一、
线程安全
的集合 二、高效的映射、集合和队列 1、ConcurrentHashMap 2、ConcurrentSkipListMap 三、写数组的拷贝 四、旧的
线程安全
的集合 一、
线程安全
的集合 如果多线程要并发地修改一个数据结构,例如散...
什么是
线程安全
?
如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那就称这个对象时
线程安全
的。 该定义要求
线程安全
...
C#线程同步(三)
线程安全
本文系统探讨了.NET中的
线程安全
实现策略。主要内容包括:1.
线程安全
基础概念,指出完全
线程安全
实现的高成本和性能损耗;2.NET框架类型的
线程安全
特性,强调静态成员
线程安全
而实例成员非
线程安全
的原则;3.应用...
Java SE
62,629
社区成员
307,258
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章