《Java并发编程实战》PDF电子书免费下载

作者:  [美] Brian Goetz [美] Tim Peierls[美] Joshua Bloch [美] Joseph Bowbeer[美] David Holmes [美] Doug Lea

出版社: 机械工业出版社  

出版年:  2021-05

ISBN: 9787111370048

~~滚到底部有网盘下载链接~~

内容简介

目录

对本书的赞誉
译者序
前言
如何使用本书
代码示例
致谢
第1章 简介
1.1 并发简史
1.2 线程的优势
1.2.1 发挥多处理器的强大能力
1.2.2 建模的简单性
1.2.3 异步事件的简化处理
1.2.4 响应更灵敏的用户界面
1.3 线程带来的风险
1.3.1 安全性问题
1.3.2 活跃性问题
1.3.3 性能问题
1.4 线程无处不在
第一部分 基础知识
第2章 线程安全性
2.1 什么是线程安全性
2.2 原子性
2.3 加锁机制
2.4 用锁来保护状态
2.5 活跃性与性能
第3章 对象的共享
3.1 可见性
3.2 发布与逸出
3.3 线程封闭
3.4 不变性
3.5 安全发布
第4章 对象的组合
4.1 设计线程安全的类
4.2 实例封闭
4.3 线程安全性的委托
4.4 在现有的线程安全类中添加功能
4.5 将同步策略文档化
第5章 基础构建模块
5.1 同步容器类
5.2 并发容器
5.3 阻塞队列和生产者-消费者模式
5.4 阻塞方法与中断方法
5.5 同步工具类
5.6 构建高效且可伸缩的结果缓存
第二部分 结构化并发应用程序
第6章 任务执行
6.1 在线程中执行任务
6.2 Executor框架
6.3 找出可利用的并行性
第7章 取消与关闭
7.1 任务取消
7.2 停止基于线程的服务
7.3 处理非正常的线程终止
7.4 JVM关闭
第8章 线程池的使用
8.1 在任务与执行策略之间的隐性耦合
8.2 设置线程池的大小
8.3 配置ThreadPoolExecutor
8.4 扩展ThreadPoolExecutor
8.5 递归算法的并行化
第9章 图形用户界面应用程序
9.1 为什么GUI是单线程的
9.2 短时间的GUI任务
9.3 长时间的GUI任务
9.4 共享数据模型
9.5 其他形式的单线程子系统
第三部分 活跃性、性能与测试
第10章 避免活跃性危险
10.1 死锁
10.2 死锁的避免与诊断
10.3 其他活跃性危险
第11章 性能与可伸缩性
11.1 对性能的思考
11.2 Amdahl定律
11.3 线程引入的开销
11.4 减少锁的竞争
11.5 示例:比较Map的性能
11.6 减少上下文切换的开销
第12章 并发程序的测试
12.1 正确性测试
12.2 性能测试
12.3 避免性能测试的陷阱
12.4 其他的测试方法
第四部分 高级主题
第13章 显式锁
13.1 Lock与ReentrantLock
13.2 性能考虑因素
13.3 公平性
13.4 在synchronized和ReentrantLock之间进行选择
13.5 读-写锁
第14章 构建自定义的同步工具
14.1 状态依赖性的管理
14.2 使用条件队列
14.3 显式的Condition对象
14.4 Synchronizer剖析
14.5 AbstractQueuedSynchronizer
14.6 java.util.concurrent同步器类中的AQS
第15章 原子变量与非阻塞同步机制
15.1 锁的劣势
15.2 硬件对并发的支持
15.3 原子变量类
15.4 非阻塞算法
第16章 Java内存模型
16.1 什么是内存模型,为什么需要它
16.2 发布
16.3 初始化过程中的安全性
附录A 并发性标注
A.1 类的标注
A.2 域和方法的标注
参考文献

下载价格:免费
立即下载
登入/注册
知识就是力量
没有账号? 忘记密码?