内容简介
1 简介
并发程序设计
传统并发编程技术概述
现代并发范式
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对象
Subscription对象
组合Observable对象
嵌套的Observable对象
处理完善Observable对象失败的情况
Rx调度器
使用自定义调度器编写UI应用程序
Subject特征和自顶向下的响应式编程
小结
练习
7 基于软件的事务内存
原子变量带来的麻烦
使用基于软件的事务内存
事务引用
使用atomic语句
组合事务
事务与副作用
单操作事务
嵌套事务
事务和异常
重新尝试执行事务
通过超时设置重新尝试执行事务
事务集合
事务局部变量
事务数组
事务映射
小结
练习
8 Actor
使用Actor模型
创建Actor系统和Actor实例
管理无法正常处理的消息
Actor实例的行为和状态
Akka框架中的Actor层次结构
识别Actor对象
Actor对象的生命周期
Actor对象之间的通信
请求模式
转发模式
停止Actor对象
Actor监督
远程Actor对象
小结
练习
9 实用并发技术
工欲善其事,必先利其器
组合使用多种框架——编写远程文件管理器
创建文件系统模型
服务器接口
客户端导航API
客户端的用户界面
实现客户端程序的逻辑
改进远程文件管理器
调试并发程序
死锁和暂停处理过程
调试运行结果不正确的程序
性能调试
小结
练习