Java并发编程实战

Java并发编程实战

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

出版社:机械工业

出版年:2021年5月

ISBN:9787111370048

所属分类:网络科技

书刊介绍

《Java并发编程实战》内容简介

本书深入浅出地介绍了Java线程和并发,是一本完美的Java并发参考手册。书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高并发应用程序的吞吐量,如何识别可并行执行的任务,如何提高单线程子系统的响应性,如何确保并发程序执行预期任务,如何提高并发代码的性能和可伸缩性等内容,最后介绍了一些高级主题,如显式锁、原子变量、非阻塞算法以及如何开发自定义的同步工具类。
本书适合Java程序开发人员阅读。
本书作者都是Java Community Process JSR 166专家组(并发工具)的主要成员,并在其他很多JCP专家组里任职。Brian Goetz有20多年的软件咨询行业经验,并著有至少75篇关于Java开发的文章。Tim Peierls是“现代多处理器”的典范,他在BoxPop.biz、唱片艺术和戏剧表演方面也颇有研究。Joseph Bowbeer是一个Java ME专家,他对并发编程的兴趣始于Apollo计算机时代。David Holmes是《The Java Programming Language》一书的合著者,任职于Sun公司。Joshua Bloch是Google公司的首席Java架构师,《Effective Java》一书的作者,并参与著作了《Java Puzzlers》。Doug Lea是《Concurrent Programming》一书的作者,纽约州立大学Oswego分校的计算机科学教授。

作品目录

对本书的赞誉
译者序
前言
如何使用本书
代码示例
致谢
第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、域和方法的标注
参考文献

相关推荐

微信二维码