在单核CPU时代,单任务在一个时间点只能执行单一程序,随着多核CPU的发展,并行程序开发变得尤为重要。本书主要介绍基于Java的并行程序设计基础、思路、方法和实战。*,立足于并发程序基础,详细介绍Java进行并行程序设计的基本方法。第二,进一步详细介绍了JDK对并行程序的强大支持,帮助读者快速、稳健地进行并行程序开发。第三,详细讨论了“锁”的优化和提高并行程序性能级别的方法和思路。第四,介绍了并行的基本设计模式,以及Java 8/9/10对并行程序的支持和改进。第五,介绍了高并发框架Akka的使用方法。第六,详细介绍了并行程序的调试方法。第七,分析Jetty代码并给出一些其在高并发优化方面的例子。本书内容丰富,实例典型,实用性强,适合有一定Java基础的技术开发人员阅读。

作者

葛一鸣:炼数成金特约讲师,国家认证系统分析师,获得Oracle OCP认证。长期从事Java软件开发工作,对Java程序设计、JVM有深入研究,对设计模式、人工智能、神经网络、数据挖掘等技术有浓厚兴趣,著有《实战Java虚拟机》一书,目前在Dataguru开设多门课程,包括Java并发、JVM、Git等。

查看全部
目录

作者简介

内容简介

前言

第1章 走入并行世界

1.1 何去何从的并行计算

1.2 你必须知道的几个概念

1.3 并发级别

1.4 有关并行的两个重要定律

1.5 回到Java:JMM

第2章 Java并行程序基础

2.1 有关线程你必须知道的事

2.2 初始线程:线程的基本操作

2.3 volatile与Java内存模型(JMM)

2.4 分门别类的管理:线程组

2.5 驻守后台:守护线程(Daemon)

2.6 先做重要的事:线程优先级

2.7 线程安全的概念与关键字synchronized

2.8 程序中的幽灵:隐蔽的错误

第3章 JDK并发包

3.1 多线程的团队协作:同步控制

3.2 线程复用:线程池

3.3 不要重复发明轮子:JDK的并发容器

3.4 使用JMH进行性能测试

第4章 锁的优化及注意事项

4.1 有助于提高锁性能的几点建议

4.2 Java虚拟机对锁优化所做的努力

4.3 人手一支笔:ThreadLocal

4.4 无锁

4.5 有关死锁的问题

第5章 并行模式与算法

5.1 探讨单例模式

5.2 不变模式

5.3 生产者-消费者模式

5.4 高性能的生产者-消费者模式:无锁的实现

5.5 Future模式

5.6 并行流水线

5.7 并行搜索

5.8 并行排序

5.9 并行算法:矩阵乘法

5.10 准备好了再通知我:网络NIO

5.11 读完了再通知我:AIO

第6章 Java8/9/10与并发

6.1 Java8的函数式编程简介

6.2 函数式编程基础

6.3 一步一步走入函数式编程

6.4 并行流与并行排序

6.5 增强的Future:CompletableFuture

6.6 读写锁的改进:StampedLock

6.7 原子类的增强

6.8 ConcurrentHashMap的增强

6.9 发布和订阅模式

第7章 使用Akka构建高并发程序

7.1 新并发模型:Actor

7.2 Akka之HelloWorld

7.3 有关消息投递的一些说明

7.4 Actor的生命周期

7.5 监督策略

7.6 选择Actor

7.7 消息收件箱(Inbox)

7.8 消息路由

7.9 Actor的内置状态转换

7.10 询问模式:Actor中的Future

7.11 多个Actor同时修改数据:Agent

7.12 像数据库一样操作内存数据:软件事务内存

7.13 一个有趣的例子:并发粒子群的实现

第8章 并行程序调试

8.1 准备实验样本

8.2 正式起航

8.3 挂起整个虚拟机

8.4 调试进入ArrayList内部

第9章 多线程优化示例—Jetty核心代码分析

9.1 Jetty简介与架构

9.2 Jetty服务器初始化

9.3 启动Jetty服务器

9.4 处理HTTP请求

查看全部
书评
查看更多
请您登录后发表评论 登录 | 注册
我的评分:
提交
0/400