CopyOnWriteArrayList并发问题
来源:17-1 课程总结
![](http://img1.sycdn.imooc.com/user/5b404cd600019f1d09900990-100-100.jpg)
旭丶
2019-05-04
老师,关于并发容器有个问题,这里以CopyOnWriteArrayList为例:
关于同步容器Vector,它本身每个方法是加了对象锁的,所以在同时操作单个方法时不存在任何问题,但是在一个线程循环遍历时,有其他线程对其进行了删改操作,就会引发不安全的问题,所以引入了并发容器CopyOnWriteArrayList,但是CopyOnWriteArrayList经测试好像也有这个问题
图片描述
写回答
2回答
-
你好,你这个例子和课程里的例子其实是一样的,本质上是都对list做了一次remove操作后,然后又去访问remove之前最后一个元素。
这种问题的本质原因是:尽管容器每个操作是线程安全的,但容器保证不了多个操作时间的线程安全性,原因是同一个线程间的连续操作是不具备原子性的。只有保证了多个操作间的原子性,才能保证这时的线程安全性。152019-05-05 -
旭丶
提问者
2019-05-04
测试图
00
相似问题