编辑推荐
null
内容简介
免费的性能午餐已经结束——Intel、AMD 和 Sparc、PowerPC 等主要的处理器生产厂商,从前使用的提高 CPU 性能的传统方法已经走到尽头,单核处理器的主频多年来一直踏步不前,当今主流的CPU 制造技术是超线程和多核架构。面对计算机性能的挑战和硬件架构的改变,迷惘的软件开发者们应何去何从?本书为大家展示了一条光明的康庄大道! 《Scala并发编程》由 Scala 语言的发明者,瑞士洛桑联邦理工大学教授 Martin Odersky 的爱徒普罗科佩茨博士撰写。作者根据自己在 Scala 语言开发团队中的工作经验,全面地介绍了并发编程技术。这些并发编程技术包括:并发程序设计的基础知识和背景知识、常用并发实用组件(如线程池、原子变量和并发集合)的用法、Scala 专用并发框架(Future 和 Promise API)的用法、Scala 并行集合框架的用法、使用响应式扩展框架编写基于事件的程序和异步程序的方式、用于编写事务程序的 ScalaSTM库以及 Actor 编程模型和 Akka 框架。作者在本书中列举的实例既介绍了理论知识又展示了实践方法,同时还能够开拓读者的编程思路。此外,作者还在每章末尾提供了大量编程习题,帮助读者测试和巩固知识。
目 录
前言 XVII1 简介 并发程序设计 传统并发编程技术概述 现代并发范式 Scala 的优点 预备知识 执行Scala 程序 Scala 基础知识 小结 练习2 JVM 和Java 内存模型中的并发处理方式 进程和线程 创建和启动线程 原子执行方式 调整次序 监控器和同步 死锁 保卫锁 中断线程和正常关闭 Volatile 变量 Java 内存模型 不可变对象和final 字段 小结 练习3 构建并发程序的传统材料 Executor 和ExecutionContext 对象 原子型基元 原子变量 无锁编程 以明确方式实现锁 ABA 问题 惰性值 并发集合 并发队列 并发集和映射 并发遍历 创建和处理进程 小结 练习4 使用Future 和Promise 对象编写异步程序 Future 类 执行Future 计算 Future 对象的回调函数 Future 计算和异常 使用Try 类型 致命异常 Future 对象中的函数组合 Promise 类 转换基于回调函数的API 扩展Future API 取消异步计算操作 Future 对象和阻塞操作 等待Future 对象 在异步计算内部执行阻塞操作 Scala Async 库 可选的Future 框架 小结 练习5 数据并行集合 Scala 集合概述 并行集合的用法 并行集合类的层次结构 配置并行等级 在JVM 中度量性能 使用并行集合的注意事项 非可并行化集合 非可并行化操作 并行操作的副作用 不确定的并行操作 可交换和可结合操作符 组合使用并行集合和并发集合 弱一致性迭代器 实现自定义的并行集合 分离器 组合器 可选的数据并行框架 ScalaBlitz 框架中的集合层次结构 小结 练习6 使用Reactive Extensions 编写并发程序 创建Observable 对象 Observable 对象和异常 Observable 协定 实现自定义Observable 对象 通过Future 对象创建Observable 对象 Subion 对象 组合Observable 对象 嵌套的Observable 对象 处理完善Observable 对象失败的情况 Rx 调度器 使用自定义调度器编写UI 应用程序 Subject 特征和自顶向下的响应式编程 小结 练习7 基于软件的事务内存 原子变量带来的麻烦 使用基于软件的事务内存 事务引用 使用atomic 语句 组合事务 事务与副作用 单操作事务 嵌套事务 事务和异常 重新尝试执行事务 通过超时设置重新尝试执行事务 事务集合 事务局部变量 事务数组 事务映射 小结 练习8 Actor 使用Actor 模型 创建Actor 系统和Actor 实例 管理无法正常处理的消息 Actor 实例的行为和状态 Akka 框架中的Actor 层次结构 识别Actor 对象 Actor 对象的生命周期 Actor 对象之间的通信 请求模式 转发模式 停止Actor 对象 Actor 监督 远程Actor 对象 小结 练习9 实用并发技术 工欲善其事,必先利其器 组合使用多种框架——编写远程文件管理器 创建文件系统模型 服务器接口 客户端导航API 客户端的用户界面 实现客户端程序的逻辑 改进远程文件管理器 调试并发程序 死锁和暂停处理过程 调试运行结果不正确的程序 性能调试 小结 练习
媒体评论
null