计算机
类型
可以朗读
语音朗读
300千字
字数
2021-05-01
发行日期
展开全部
主编推荐语
本书是一本关于并发编程技术的教程。
内容简介
书中详细介绍了并发编程中的主要概念和基本数据结构,包括传统并发模型、基于Future和Promise的异步编程、数据并行容器、基于响应式扩展的并发编程、软件事务性内存、角色模型、并发编程实践和反应器编程模型等。本书基于Scala语言编写,实例丰富,可操作性很强。
本书面向的用户群体以Scala用户为主,因为书中所有的示例都是基于Scala代码的。但其他语言用户也可以从中获益良多,因为书中介绍的并发编程概念是普遍适用的,并不局限于特定编程语言,只不过Scala比较适用于并发编程而已。
目录
- 版权信息
- 内容提要
- 关于作者
- 致谢
- 关于审校者
- 序言
- 前言
- 资源与支持
- 第1章 概述
- 1.1 并发编程
- 1.1.1 传统并发计算概述
- 1.1.2 现代并发编程范式
- 1.2 Scala的优势
- 1.3 准备工作
- 1.3.1 执行一个Scala程序
- 1.3.2 初识Scala
- 1.4 小结
- 1.5 练习
- 第2章 JVM和JMM上的并发性
- 2.1 进程和线程
- 2.1.1 线程的创建和启动
- 2.1.2 原子执行
- 2.1.3 重排序
- 2.2 监控器和同步
- 2.2.1 死锁
- 2.2.2 保护块
- 2.2.3 线程中断和平滑关闭
- 2.3 易失变量
- 2.4 JMM
- 2.5 小结
- 2.6 练习
- 第3章 并发编程的传统构造模块
- 3.1 Executor和ExecutionContext对象
- 3.2 原子性原语
- 3.2.1 原子性变量
- 3.2.2 无锁编程
- 3.2.3 锁的实现
- 3.2.4 ABA问题
- 3.3 懒值
- 3.4 并发容器
- 3.4.1 并发队列
- 3.4.2 并发集合和映射
- 3.4.3 并发遍历
- 3.5 定制的并发数据结构
- 3.5.1 实现一个无锁的并发池
- 3.5.2 进程的创建和处理
- 3.6 小结
- 3.7 练习
- 第4章 基于Future和Promise的异步编程
- 4.1 Future
- 4.1.1 启动Future计算
- 4.1.2 Future回调
- 4.1.3 Future和异常
- 4.1.4 使用Try类型
- 4.1.5 致命异常
- 4.1.6 Future上的函数式组合
- 4.2 Promise
- 4.2.1 包装基于回调的API
- 4.2.2 扩展Future API
- 4.2.3 异步计算的取消
- 4.3 Future和阻塞
- 4.3.1 等待Future完成
- 4.3.2 在异步计算内部阻塞
- 4.4 Scala的Async库
- 4.5 其他Future框架
- 4.6 小结
- 4.7 练习
- 第5章 数据并行容器
- 5.1 Scala容器概述
- 5.2 使用并行容器
- 5.2.1 并行容器的类继承谱系
- 5.2.2 配置并行层次
- 5.2.3 测量JVM上的性能
- 5.3 并行容器的缺点
- 5.3.1 不可并行容器
- 5.3.2 不可并行操作
- 5.3.3 并行操作中的副作用
- 5.3.4 非确定性的并行操作
- 5.3.5 可交换和可结合的操作
- 5.4 将并行容器和并发容器结合起来
- 5.5 实现定制的并行容器
- 5.5.1 分裂器
- 5.5.2 组合器
- 5.6 小结
- 5.7 练习
- 第6章 基于响应式扩展的并发编程
- 6.1 创建Observable对象
- 6.1.1 Observable对象和异常
- 6.1.2 Observable规约
- 6.1.3 定制Observable对象
- 6.1.4 由Future对象创建Observable对象
- 6.1.5 订阅
- 6.2 Observable对象的组合
- 6.2.1 嵌套Observable对象
- 6.2.2 Observable对象的错误处理
- 6.3 Rx调度器
- 6.4 Subject和自顶向下响应式编程
- 6.5 小结
- 6.6 练习
- 第7章 软件事务性内存
- 7.1 原子性变量的问题
- 7.2 使用STM
- 7.2.1 事务性引用
- 7.2.2 使用atomic语句
- 7.3 事务的组合
- 7.3.1 事务间的交互和副作用
- 7.3.2 单操作事务
- 7.3.3 嵌套的事务
- 7.3.4 事务和异常
- 7.4 事务的重试
- 7.5 事务性容器
- 7.5.1 事务局部变量
- 7.5.2 事务性数组
- 7.5.3 事务性映射
- 7.6 小结
- 7.7 练习
- 第8章 角色模型
- 8.1 使用角色模型
- 8.1.1 创建角色系统和角色实例
- 8.1.2 未处理消息的管理
- 8.1.3 角色行为和状态
- 8.1.4 Akka角色的层次关系
- 8.1.5 角色的查找
- 8.1.6 角色的生命周期
- 8.2 角色之间的通信
- 8.2.1 ask模式
- 8.2.2 转发模式
- 8.2.3 角色终止
- 8.3 角色的监管
- 8.4 远程角色
- 8.5 小结
- 8.6 练习
- 第9章 并发编程实践
- 9.1 选择并发性编程的正确工具
- 9.2 将所有工具组合起来——编写一个远程文件浏览器
- 9.2.1 文件系统建模
- 9.2.2 服务器接口
- 9.2.3 客户端API
- 9.2.4 客户端程序的用户界面
- 9.2.5 实现客户端逻辑
- 9.2.6 改进远程文件浏览器
- 9.3 调试并发性程序
- 9.3.1 死锁和没有进度
- 9.3.2 程序错误输出的调试
- 9.3.3 性能调优
- 9.4 小结
- 9.5 练习
- 第10章 反应器编程模型
- 10.1 对反应器的需求
- 10.2 开始使用Reactor
- 10.3 Hello World程序
- 10.4 事件流
- 10.4.1 事件流的生命周期
- 10.4.2 事件流的函数式组合
- 10.5 反应器
- 10.5.1 反应器的定义和配置
- 10.5.2 使用通道
- 10.6 调度器
- 10.7 反应器生命周期
- 10.8 反应器系统服务
- 10.8.1 日志服务
- 10.8.2 时钟服务
- 10.8.3 Channels服务
- 10.8.4 定制服务
- 10.9 协议
- 10.9.1 定制一个服务器—客户端协议
- 10.9.2 标准服务器—客户端协议
- 10.9.3 路由协议
- 10.9.4 两路协议
- 10.10 小结
- 10.11 练习
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。