出版社: 机械工业出版社
原作名: Java Concurrency in Practice
译者: 童云兰
出版年: 2012-2
页数: 293
定价: 69.00元
装帧: 平装
丛书: 华章专业开发者丛书
ISBN: 9787111370048
内容简介 · · · · · ·
本书深入浅出地介绍了Java线程和并发,是一本完美的Java并发参考手册。
书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高并发应用程序的吞吐量,如何识别可并行执行的任务,如何提高单线程子系统的响应性,如何确保并发程序执行预期任务,如何提高并发代码的性能和可伸缩性等内容,最后介绍了一些高级主题,如显式锁、原子变量、非阻塞算法以及如何开发自定义的同步工具类。
本书适合Java程序开发人员阅读。
Java并发编程实战的创作者
· · · · · ·
-
约书亚·布洛克 作者 -
Brian Goetz 作者
作者简介 · · · · · ·
本书作者都是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 ...
本书作者都是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.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 并发性标注
参考文献
· · · · · · (收起)
原文摘录 · · · · · · ( 全部 )
-
加锁机制既可以确保可见性又可以确保原子性,而 volatile 变量只能确保可见性。 当且仅当满足以下所有条件时,才应该使用 volatile 变量: - 对变量的写入操作不依赖变量的当前值,或者你能确保只有单个线程更新变量的值。 - 该变量不会与其它状态变量一起纳入到不变性条件中。 - 在访问变量时不需要加锁。 (查看原文) —— 引自章节:volatile 变量 -
当满足以下条件时,对象才是不可变的: - 对象创建以后其状态就不可修改 - 对象的所有域都是 final 类型 - 对象时正确创建的(在对象的构造期间,this 引用没有逸出) 从技术上来看,不可变对象并不需要将其所有的域都声明为 final 类型,例如 String 就是这种情况,这就要对类的良性数据竞争情况做精确的分析,因此需要深入理解 Java 的内存模型。... 自己在编码时不要这么做。 (查看原文) —— 引自章节:不变性
> 全部原文摘录
丛书信息
· · · · · ·
喜欢读"Java并发编程实战"的人也喜欢的电子书 · · · · · ·
喜欢读"Java并发编程实战"的人也喜欢 · · · · · ·
-
- 深入理解Java虚拟机(第2版) 9.1
-
- 微服务架构设计模式 9.1
-
- 实现领域驱动设计 8.3
-
- 实战Java高并发程序设计 8.1
-
- Netty实战 7.4
-
- 数据密集型应用系统设计 9.6
-
- 凤凰架构 9.2
-
- 重构 9.0
Java并发编程实战的书评 · · · · · · ( 全部 63 条 )
不是教你如何使用库,而是教你原理
一段未完的奇妙的旅程
> 更多书评 63篇
论坛 · · · · · ·
| 现在看会不会知识滞后? | 来自1 | 1 回应 | 2020-10-05 16:04:53 |
| p272页 | 来自盛消 | 2019-10-03 19:25:37 | |
| 07年出一版,今年又出一版,这两版什么区别 | 来自Biubiu | 3 回应 | 2012-06-16 17:11:23 |
| 国内什么时候出影印版啊 | 来自lmtoo | 2012-06-16 17:10:37 |
这本书的其他版本 · · · · · · ( 全部3 )
-
Addison-Wesley Professional (2006)9.4分 346人读过
-
电子工业出版社 (2007)8.8分 376人读过
在哪儿借这本书 · · · · · ·
以下书单推荐 · · · · · · ( 全部 )
- 书单 | 千评9分书(一) (Sheryl)
- 多线程并发 (hoterran)
- 豆瓣9分以上计算机图书 (晚安,本杰明)
- Java (神雕侠觅侣)
- 从码熊到码雄之路 (不在服务区)
谁读这本书? · · · · · ·
二手市场
· · · · · ·
订阅关于Java并发编程实战的评论:
feed: rss 2.0


8 有用 Charles 2013-11-27 17:26:30
用Java五六年算是真正入了多线程的门,这本书五星级推荐。
5 有用 yonoel 2019-08-31 16:23:19
jmm那块讲得不是很全,并发包还是要看看源码,其他基础知识点很全。
2 有用 小永 2015-07-18 13:17:07
浅尝辄止...
2 有用 钱满 2013-12-19 23:01:02
finally。。。反正最后我又是跳着读了- -
0 有用 阿丹 2013-03-16 00:21:57
重读,比第一版翻译的好,温故而知新。