摘要:Java 多线程进阶 并发协作控制 线程协作对比 Thread/Executor/Fork Join 线程启动, 运行, 结束. 线程之间缺少协作. synchronized 同步 互斥, 限定只有一个线程才能进入关键区. 简单粗暴, 性能损失有点大 _ 2. 操作奶茶账本 假设奶茶店有老板和多名员
阅读全文
摘要:Java 多线程进阶 并发数据结构 并发数据结构 常用的数据结构是线程不安全的 ArrayList/HashMap/HashSet 非同步的 多个线程同时独写, 可能会抛出异常或数据错误 传统Vector/HashTable等同步数据集合性能过差 并发数据结构: 数据添加或删除 阻塞式集合: 当集合
阅读全文
摘要:ForkJoinPool Java7 提供另一种并行框架: 分解/治理/合并( 分治编程 ) 适用于一种特殊任务, 这类任务的计算量不好确定(最小任务可确定) 关键类 ForkJoinPool 任务池 RecursiveAction RecursiveTask 代码示例 总结 了解 Fork Joi
阅读全文
摘要:Executor(1) 从JDK5 开始提供Executor FrameWork(java.util.concurrent.\ ) 分离任务和创建和执行者的创建 线程重复利用(new线程代价很大) 理解 共享线程池 的概念 预设好的多个Thread, 可弹性增加 多次执行很多很小的任务 任务创建和执
阅读全文
摘要:Java 多线程进阶 并发编程 并行计算 业务: 任务多, 数据量大 串行 vs 并行 串行编程简单, 并行编程困难 单个计算核频率下降, 计算核数增多, 整体性能变高 并行困难(任务分配和执行过程 高度耦合 ) 如何控制粒度, 切割任务 如何分配任务给线程, 监督线程执行过程 并行模式 主从模式(
阅读全文
摘要:Java 多线程 多线程创建 java.lang.Thread 线程继承 Thread类, 实现 run 方法 示例代码 java.lang.Runnable 接口 线程实现 Runnable 接口, 实现 run 方法 示例代码 线程创建方式比较: Thread vs Runable Java是单
阅读全文
摘要:Stax Streaming API for XML 流模型中的拉模型 在遍历文档时, 会把感兴趣的部分从读取器中拉出, 不需要引发事件, 允许我们选择性地处理节点. 这大大提高了灵活性及整体效率. 两套处理API 基于指针的API, XMLStreamReader 基于迭代器的API, XMLEv
阅读全文
摘要:SAX SimpleAPI for XML 采用事件/流模型来解析XML文档, 更快速, 更轻量 有选择解析和访问, 不像DOM加载整个文档, 内存要求低 SAX 对 XML 文档的解析为一次性读取, 不创建/存储文档对象, 很难同时访问xml文档中多处数据 推模型. 当它每发现一个节点就引发一个事
阅读全文
摘要:DOM Document Object Model 文档对象模型, 擅长读(小规模)/写 , 直观易用 其处理方式是将XML 整个 作为类似 树结构 的方式 读入内存 中以便操作及解析, 方便修改. 所以当解析大数据量的XML文件时, 有 内存泄漏及程序崩溃 的风险. DOM类 DocumentBu
阅读全文