书籍详情
Java虚拟机并发编程
作者:Venkat Subramaniam 著
出版社:机械工业出版社
出版时间:2013-05-01
ISBN:9787111418931
定价:¥59.00
购买这本书可以去
内容简介
本书是Java并发编程领域的里程碑之作,由资深Java技术专家、并发编程专家、敏捷开发专家和Jolt大奖得主撰写,Amazon五星级畅销书。它系统深入地讲解在JVM平台上如何利用JDK同步模型、软件事务内存模型和基于角色的并发模型更好地进行并发编程。全书以示例驱动,通俗易懂,包含大量编程技巧、注意事项和最佳实践。要重点强调的是,本书并不仅仅只适合于Java语言的并发编程,它还适用于Clojure、Groovy、JRuby和Scala等所有运行在JVM平台上的编程语言。本书共10章,分为五个部分。第一部分:并发策略,阐释了影响并发性的因素、如何有效实现并发,以及并发的设计方法等;第二部分:现代Java/JDK并发,讨论了现代JavaAPI的线程安全和效率,以及如何处理已有应用程序中的现实问题和重构遗留代码时的原则;第三部分:软件事务内存,深入讨论了STM并就如何在各种主要的JVM语言里使用STM给出了指导意见;第四部分:基于角色的并发,详细讲解了如何在基于角色的模型下消除并发问题以及如何在自己的首选语言中使用角色模型;第五部分:后记,回顾了本书讨论的解决方案并总结了并发编程中的注意事项和最佳实践。
作者简介
作者简介VenkatSubramaniam 资深Java技术专家、并发编程专家和敏捷技术专家,拥有超过20年的软件开发经验,在Java领域(整个Java平台)、敏捷开发领域有非常深入的研究,并进行了大量实践。他是AgileDeveloper公司创始人,在美洲、欧洲和亚洲等多个国家和地区开展培训和指导工作,已经帮助数以千计的软件开发人员成功地在其软件项目中运用敏捷方法。他经常受邀在大型国际软件会议和用户组活动中发表技术演讲,深受欢迎。他著作颇丰,先后独自撰写了《.NETGotchas》、《Programming Groovy》、《ProgrammingScala》等经典著作,尤为值得一提的是,他与人合著的《Practices of an AgileDeveloper》一书获得了2007年的Jolt生产力大奖。译者简介薛笛 资深软件开发工程师,精通分布式系统开发和Java相关技术,对JVM有深入的研究。目前就职于腾讯公司,担任高级开发工程师,负责手机QQ、手机Qzone等应用的后台开发。热衷于技术分享,在《程序员》杂志和IBMDevelopers Work上发表过多篇技术文章,CSDN博客专家。
目录
译者序
前言
第1章 并发的威力与风险
1.1 线程:程序的执行流程
1.2 并发的威力
1.3 并发的风险
1.4 小结
第一部分 并发策略
第2章 分工原则
2.1 从顺序到并发
2.2 在IO密集型应用程序中使用并发技术
2.3 并发方法对IO密集型应用程序的加速效果
2.4 在计算密集型应用程序中使用并发技术
2.5 并发方法对于计算密集型应用程序的加速效果
2.6 有效的并发策略
2.7 小结
第3章 设计方法
3.1 处理状态
3.2 探寻设计选项
3.3 共享可变性设计
3.4 隔离可变性设计
3.5 纯粹不可变性设计
3.6 持久的/不可变的数据结构
3.7 选择一种设计方法
3.8 小结
第二部分 现代Java/JDK并发模型
第4章 可扩展性和线程安全
4.1 用ExecutorService管理线程
4.2 使线程协作
4.3 数据交换
4.4 Java 7 Fork-Join API
4.5 可扩展集合类
4.6 Lock和Synchronized
4.7 小结
第5章 驯服共享可变性
5.1 共享可变性 != Public
5.2 定位并发问题
5.3 保持不变式
5.4 管理好资源
5.5 保证可见性
5.6 增强并发性
5.7 保证原子性
5.8 小结
第三部分 软件事务内存
第6章 软件事务内存导论
6.1 同步与并发水火不容
6.2 对象模型的缺陷
6.3 将实体与状态分离
6.4 软件事务内存
6.5 STM中的事务
6.6 用STM实现并发
6.7 用Akka/Multiverse STM实现并发
6.8 创建事务
6.9 创建嵌套事务
6.10 配置Akka事务
6.11 阻塞事务-有意识地等待
6.12 提交和回滚事件
6.13 集合与事务
6.14 处理写偏斜异常
6.15 STM的局限性
6.16 小结
第7章 在Clojure、Groovy、Java、JRuby和Scala中使用STM
7.1 Clojure STM
7.2 Groovy集成
7.3 Java集成
7.4 JRuby集成
7.5 Scala中的可选方案
7.6 小结
第四部分 基于角色的并发模型
第8章 讨喜的隔离可变性
8.1 用角色实现隔离可变性
8.2 角色的特性
8.3 创建角色
8.4 收发消息
8.5 同时使用多个角色
8.6 多角色协作
8.7 使用类型化角色
8.8 类型化角色和murmurs
8.9 混合使用角色和STM
8.10 使用transactor
8.11 调和类型化角色
8.12 远程角色
8.13 基于角色模型的局限性
8.14 小结
第9章 在Groovy、Java、JRuby和Scala中使用角色
9.1 在Groovy中使用GPars提供的角色实现
9.2 在Java中使用Akka提供的角色实现
9.3 在JRuby中使用Akka提供的Actor实现
9.4 在Scala中使用角色
9.5 小结
第五部分 后记
第10章 并发编程之禅
10.1 慎重选择
10.2 并发:程序员指南
10.3 并发:架构师指南
10.4 明智地进行选择
附录1 Clojure agent
附录2 一些网络资源
参考文献
前言
第1章 并发的威力与风险
1.1 线程:程序的执行流程
1.2 并发的威力
1.3 并发的风险
1.4 小结
第一部分 并发策略
第2章 分工原则
2.1 从顺序到并发
2.2 在IO密集型应用程序中使用并发技术
2.3 并发方法对IO密集型应用程序的加速效果
2.4 在计算密集型应用程序中使用并发技术
2.5 并发方法对于计算密集型应用程序的加速效果
2.6 有效的并发策略
2.7 小结
第3章 设计方法
3.1 处理状态
3.2 探寻设计选项
3.3 共享可变性设计
3.4 隔离可变性设计
3.5 纯粹不可变性设计
3.6 持久的/不可变的数据结构
3.7 选择一种设计方法
3.8 小结
第二部分 现代Java/JDK并发模型
第4章 可扩展性和线程安全
4.1 用ExecutorService管理线程
4.2 使线程协作
4.3 数据交换
4.4 Java 7 Fork-Join API
4.5 可扩展集合类
4.6 Lock和Synchronized
4.7 小结
第5章 驯服共享可变性
5.1 共享可变性 != Public
5.2 定位并发问题
5.3 保持不变式
5.4 管理好资源
5.5 保证可见性
5.6 增强并发性
5.7 保证原子性
5.8 小结
第三部分 软件事务内存
第6章 软件事务内存导论
6.1 同步与并发水火不容
6.2 对象模型的缺陷
6.3 将实体与状态分离
6.4 软件事务内存
6.5 STM中的事务
6.6 用STM实现并发
6.7 用Akka/Multiverse STM实现并发
6.8 创建事务
6.9 创建嵌套事务
6.10 配置Akka事务
6.11 阻塞事务-有意识地等待
6.12 提交和回滚事件
6.13 集合与事务
6.14 处理写偏斜异常
6.15 STM的局限性
6.16 小结
第7章 在Clojure、Groovy、Java、JRuby和Scala中使用STM
7.1 Clojure STM
7.2 Groovy集成
7.3 Java集成
7.4 JRuby集成
7.5 Scala中的可选方案
7.6 小结
第四部分 基于角色的并发模型
第8章 讨喜的隔离可变性
8.1 用角色实现隔离可变性
8.2 角色的特性
8.3 创建角色
8.4 收发消息
8.5 同时使用多个角色
8.6 多角色协作
8.7 使用类型化角色
8.8 类型化角色和murmurs
8.9 混合使用角色和STM
8.10 使用transactor
8.11 调和类型化角色
8.12 远程角色
8.13 基于角色模型的局限性
8.14 小结
第9章 在Groovy、Java、JRuby和Scala中使用角色
9.1 在Groovy中使用GPars提供的角色实现
9.2 在Java中使用Akka提供的角色实现
9.3 在JRuby中使用Akka提供的Actor实现
9.4 在Scala中使用角色
9.5 小结
第五部分 后记
第10章 并发编程之禅
10.1 慎重选择
10.2 并发:程序员指南
10.3 并发:架构师指南
10.4 明智地进行选择
附录1 Clojure agent
附录2 一些网络资源
参考文献
猜您喜欢