5.1.1 同步容器类的问题,在多线程的情况下,如,a 线程 对vector 执行 get 操作, 另外一个线程对vector 进行delete 操作,由于线程交替执行,可能有一个线程获取下标 为9 但是另外一个线程已经删除了下标为9的数据,导致数组下标越界,所以对同步容器进行复合操作,在高并发的情况下,就需要客户端加锁
5.1.2 迭代器与并发修改错误,在使用迭代器的过程中,可能会出现并发修改错误问题,例如 A线程删除了一个元素,当B线程发现计数器发生改变时,会抛出并发修改错误溢出,这个是一个jdk 的 设计,使用fail-fast ,使用快速失败模式,通知使用者已经发生异常了,在单线程的情况下也会出现,当使用迭代器模式删除数据的时候,会产生错误
public class AddRemoveListElement {
public static void main(String args[]) {
List<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
for (String s : list) {
if (s.equals("B")) {
list.remove(s);
}
}
//foreach循环等效于迭代器
/*Iterator<String> iterator=list.iterator();
while(iterator.hasNext()){
String s=iterator.next();
if (s.equals("B")) {
list.remove(s);
}
}*/
}
}
分享到:
相关推荐
java并发编程实战源码 附有本书所有源码,maven 导入 eclipse或idea
Java 并发编程实战.pdf 目录齐全
这就是最正宗的《Java 并发编程实战》带目录 用福昕阅读器打开查看特别的清晰
java并发编程实战 pdf
62-Java并发编程实战62-Java并发编程实战62-Java并发编程实战62-Java并发编程实战62-Java并发编程实战62-Java并发编程实战62-Java并发编程实战62-Java并发编程实战62-Java并发编程实战62-Java并发编程实战62-Java...
深入讲解java并发编程技术,多线程、锁以及java内存模型等
你丫有没有良知,书籍是什么,是希望,是神圣的,你们这些译者简直就是在犯罪 ,不过要是英文功底不好,还是建议买本看吧,谁让你英文水平不如他们呢 《JAVA并发编程实践》随着多核处理器的普及,使用并发成为构建高...
读书笔记-Java并发编程实战-基础篇
第5章 基础构建模块 5.1 同步容器类 5.1.1 同步容器类的问题 5.1.2 迭代器与Concurrent-ModificationException 5.1.3 隐藏迭代器 5.2 并发容器 5.2.1 ConcurrentHashMap 5.2.2 额外的原子Map操作 5.2.3 ...
《Java并发编程实战》个人读书笔记,非常详细: 1 简介 2 线程安全性 3 对象的共享 4 对象的组合 5 基础构建模块 6 任务执行 7 取消与关闭 8 线程池的使用 9 图形用户界面应用程序 10 避免活跃性危险 11 性能与可...
《java并发编程实战》读书笔记-第3章-对象的共享,脑图形式,使用xmind8制作 包括可见性、发布与逸出、线程封闭、不可变性、安全发布等内容
《java并发编程实战》读书笔记-第3章-对象的共享,脑图形式,使用xmind8制作 包括同步容器类、并发容器类、阻塞队列和生产者消费者模式、阻塞和中断方法、同步工具类。最后是构建高效且可伸缩的结果缓存
java并发编程实战pdf学习笔记 总结了重要的知识点
java并发编程实战高清版pdf自用,分享给大家
《java并发编程实战》读书笔记-第2章-线程安全性,脑图形式,使用xmind8制作 包括引言、线程安全性定义、原子性、加锁机制、使用锁保护状态、活跃性与性能等内容
JAVA并发编程实战,JAVA并发编程实战2本打包!
《java并发编程实战》读书笔记-第3章-对象的共享,脑图形式,使用xmind8制作 包括线程安全类设计、实例封闭、线程安全性委托、现有线程安全类中添加功能和文档化同步策略等内容
JAVA并发编程实战.pdf-详细介绍了线程并发的机制的
java并发编程实践笔记java并发编程实践笔记java并发编程实践笔记java并发编程实践笔记