批量上传,套装书可能不全,下单前咨询在线客服!有特殊要求,下单前请咨询客服!
¥ 36.62 4.6折 ¥ 79 全新
库存7件
作者翟陆续
出版社机械工业出版社
ISBN9787111642992
出版时间2019-12
装帧平装
开本16开
定价79元
货号28499408
上书时间2024-11-02
异步编程是可以让程序并行运行的一种手段,可以让程序中的一个工作单元与主应用程序线程分开独立运行,进而提高应用程序的性能和响应能力等。
虽然Java为不同技术域提供了相应的异步编程技术,但是这些异步编程技术被散落到不同技术域的技术文档中,没有一个统一的文档对其进行梳理归纳。另外这些技术之间是什么关系,各自的出现都是为了解决什么问题,我们也很难找到相关资料来解释。
本书的出现则是为了打破这种局面,旨在对Java中相关的异步编程技术进行归纳总结,为读者提供一个统一文档来查阅、参考。
本书涵盖了Java中常见的异步编程场景,包括单JVM内的异步编程、跨主机通过网络通信的远程过程调用的异步调用与异步处理,以及Web请求的异步处理等。
本书在讲解Java中每种异步编程技术时都附有案例,以理论与实践相结合的方式,帮助读者更好地掌握相关内容。
书中在讲解每种异步编程技术时多会对其实现原理进行讲解,让读者知其然也知其所以然。
对于近比较热门的反应式编程以及WebFlux的使用与原理解析,本书也有一定的深入探索。
本书适用于有一定Java编程基础,并对Java并发编程、Java异步编程、反应式编程感兴趣的读者。
对于初学者,建议按照本书编写的章节顺序进行学习,因为本书是按照从易到难的顺序编写的,并且每章都有一些代码示例供大家动手实践,以便加深理解。如果你对Java并发编程与异步编程有一定的了解,那么可以直接从目录查看感兴趣的章节进行学习。
第1章主要讲解异步编程的概念和作用,以及在日常开发中都有哪些异步编程场景。
第2章讲解基础的显式使用线程和线程池来实现异步编程的方法,也分析了它们目前存在的缺点。
第3章内容比较丰富,主要讲解JDK中的各种Future,包括如何使用Future实现异步编程及其内部实现原理,然后讲解了如何结合JDK8 Stream 和Future实现异步编程。
第4章讲解Spring框架中提供的异步执行能力,包括在Spring中如何对TaskExecutor进行抽象,如何使用注解@Async实现异步编程,以及其内部实现原理。
第5章讲解比较热门的反应式编程相关的内容,包括什么是反应式编程,如何使用反应式编程规范的库RxJava和Reactor实现异步编程。
第6章讲解Web Servlet的异步非阻塞处理,包括Servlet 3.0规范是如何提供异步处理能力的,Servlet 3.1规范是如何解决IO阻塞问题的,以及如何在Spring MVC进行异步处理。
第7章讲解与Servlet技术栈并行存在的、由Spring5.0提出的Spring WebFlux异步非阻塞处理,包括Spring WebFlux的由来、Spring WebFlux的并发模型、两种编程模型,以及如何使用Spring WebFlux来进行服务开发、Spring WebFlux内部的实现原理。
第8章简要介绍了业界为方便实现异步编程而设计的一些框架和中间件,比如异步基于事件驱动的网络编程框架Netty,高性能RPC框架Apache Dubbo,高性能线程间消息传递库Disruptor,异步、分布式、基于事件驱动的编程框架Akka和高性能分布式消息框架Apache RocketMQ。
第9章介绍新兴的Go语言是如何从语言层面提供强大的异步编程能力的。
【资源和勘误】
有需要的读者可以到https://github.com/zhailuxu/async-program-demo 下载本书的demo资源,由于笔者水平有限,如果你在阅读本书时发现错误,可以把错误信息提交到华章网站(www.hzbook.com)。
【致谢】
首先要感谢机械工业出版社杨福川老师的团队,他们拥有丰富的出版经验,在本书的命名以及目录结构调整上,给出了很多中肯的建议;其次要感谢我的家人,感谢他们对我的鼓励与支持,让我有充分的时间来写作本书。
这是一部全面解析Java异步编程的实战型著作,针对各种常见异步编程场景,从编程语言、开发框架等角度深入讲解了异步编程的原理和方法。
作者是阿里资深Java技术工程师加多,在Java异步编程、并发编程领域有深厚的积累。 本书得到周志明等众多业内专家高度评价。适合每个渴望拿到大厂offer的Java求职者阅读。
---------------------------------------------------
第1-2章主要介绍了异步编程的概念、适用场景,以及如何使用线程和线程池来实现异步编程;
第3章首先讲解JDK中的各种Future及其内部实现原理,然后讲解如何使用Future实现异步编程,以及如何结合JDK8 Stream 和Future实现异步编程;
第4章讲解了Spring框架中提供的异步执行能力,包含Spring中如何对TaskExecutor进行抽象,如何使用注解@Async实现异步编程,以及其内部实现原理;
第5章讲解了比较热门的反应式编程相关的内容,包含什么是反应式编程,如何使用反应式编程规范的库RxJava和Reactor库实现异步编程;
第6章讲解了Web Servlet的异步非阻塞处理,包含Servlet 3.0规范是如何提供异步处理能力的,Servlet 3.1规范是如何解决IO阻塞问题的,以及在Spring MVC中如何进行异步处理。
第7章讲解与Servlet技术栈并行存在的、由Spring5.0提出来的Spring WebFlux的异步非阻塞处理,包含Spring WebFlux的由来、Spring WebFlux的并发模型、两种编程模型,以及如何使用Spring WebFlux来进行服务开发、Spring WebFlux内部的实现原理。
第8章简要介绍了业界为方便实现异步编程而设计的一些框架和中间件,比如异步基于事件驱动的网络编程框架Netty,高性能RPC框架Apache Dubbo,高性能线程间消息传递库Disruptor,异步基、分布式、基于事件驱动的编程框架Akka,高性能分布式消息平台Apache RocketMQ 。
第9章介绍新兴的Go语言是如何从语言层面提供了强大的异步编程能力的。
本书注重理论与实践相结合,且每个异步技术点都附有代码实例,帮助读者加深理解。
资深Java研发工程师,就职于淘宝,有多年的Java研发经验,在Java并发编程、异步编程等方面有深入研究和积累。对JUC包源码有深入的理解,熟悉常用开源框架实现原理。
著有畅销书《Java并发编程之美》。
前言
第1章 认识异步编程1
1.1 异步编程概念与作用1
1.2 异步编程场景2
1.3 总结9
第2章 显式使用线程和线程池实现异步编程10
2.1 显式使用线程实现异步编程10
2.2 显式使用线程池实现异步编程14
2.2.1 如何显式使用线程池实现异步编程14
2.2.2 线程池ThreadPoolExecutor原理剖析17
2.3 总结34
第3章 基于JDK中的Future实现异步编程35
3.1 JDK 中的Future35
3.2 JDK中的FutureTask37
3.2.1 FutureTask 概述37
3.2.2 FutureTask的类图结构41
3.2.3 FutureTask的run() 方法45
3.2.4 FutureTask的get()方法48
3.2.5 FutureTask的cancel(boolean mayInterruptIfRunning)方法50
3.2.6 FutureTask的局限性52
3.3 JDK中的CompletableFuture52
3.3.1 CompletableFuture 概述52
3.3.2 显式设置CompletableFuture结果54
3.3.3 基于CompletableFuture实现异步计算与结果转换56
3.3.4 多个CompletableFuture进行组合运算65
3.3.5 异常处理68
3.3.6 CompletableFuture概要原理70
3.4 JDK8 Stream & CompletableFuture76
3.4.1 JDK8 Stream76
3.4.2 当Stream遇见CompletableFuture79
3.5 总结81
第4章 Spring框架中的异步执行82
4.1 Spring中对TaskExecutor的抽象82
4.2 如何在Spring中使用异步执行84
4.2.1 使用TaskExecutor实现异步执行84
4.2.2 使用注解@Async实现异步执行89
4.3 @Async注解异步执行原理96
4.4 总结109
第5章 基于反应式编程实现异步编程110
5.1 反应式编程概述110
5.2 Reactive Streams规范120
5.3 基于RxJava实现异步编程123
5.4 基于Reactor实现异步编程133
5.5 总结136
第6章 Web Servlet的异步非阻塞处理137
6.1 Servlet概述137
6.2 Servlet 3.0 提供的异步处理能力138
6.3 Servlet 3.1 提供的非阻塞IO能力145
6.4 Spring Web MVC 的异步处理能力153
6.4.1 基于DeferredResult的异步处理154
6.4.2 基于Callable实现异步处理155
6.5 总结157
第7章 Spring WebFlux的异步非阻塞处理158
7.1 Spring WebFlux概述158
7.2 Reactive编程 & Reactor库159
7.3 WebFlux服务器160
7.4 WebFlux的并发模型163
7.5 WebFlux对性能的影响164
7.6 WebFlux的编程模型164
7.6.1 WebFlux注解式编程模型165
7.6.2 WebFlux函数式编程模型168
7.7 WebFlux原理浅尝171
7.7.1 Reactor Netty概述171
7.7.2 WebFlux服务器启动流程173
7.7.3 WebFlux一次服务调用流程182
7.8 WebFlux的适用场景185
7.9 总结186
第8章 高性能异步编程框架和中间件187
8.1 异步、基于事件驱动的网络编程框架—Netty187
8.1.1 Netty概述187
8.1.2 Netty的线程模型190
8.1.3 TCP半包与粘包问题196
8.1.4 基于Netty与CompletableFuture实现RPC异步调用198
8.2 高性能RPC框架—Apache Dubbo209
8.2.1 Apache Dubbo概述209
8.2.2 Dubbo的异步调用210
8.2.3 Dubbo的异步执行214
8.3 高性能线程间消息传递库—Disruptor217
8.3.1 Disruptor概述217
8.3.2 Disruptor的特性详解220
8.3.3 基于Disruptor实现异步编程223
8.4 异步、分布式、基于消息驱动的框架—Akka227
8.4.1 Akka概述227
8.4.2 传统编程模型存在的问题228
8.4.3 Actor模型解决了传统编程模型的问题232
8.4.4 基于Akka实现异步编程237
8.5 高性能分布式消息框架—Apache RocketMQ244
8.5.1 Apache RocketMQ概述244
8.5.2 基于Apache RocketMQ实现系统间异步解耦246
8.6 总结254
第9章 Go语言的异步编程能力255
9.1 Go语言概述255
9.2 Go语言的线程模型256
9.2.1 一对一模型256
9.2.2 多对一模型257
9.2.3 多对多模型258
9.2.4 Go语言的线程模型259
9.3 goroutine与channel261
9.3.1 goroutine261
9.3.2 channel265
9.3.3 构建管道实现异步编程269
9.4 总结273
这是一部全面解析Java异步编程的实战型著作,针对各种常见异步编程场景,从编程语言、开发框架等角度深入讲解了异步编程的原理和方法。
作者是阿里资深Java技术工程师加多,在Java异步编程、并发编程领域有深厚的积累。 本书得到周志明等众多业内专家高度评价。适合每个渴望拿到大厂offer的Java求职者阅读。
---------------------------------------------------
第1-2章主要介绍了异步编程的概念、适用场景,以及如何使用线程和线程池来实现异步编程;
第3章首先讲解JDK中的各种Future及其内部实现原理,然后讲解如何使用Future实现异步编程,以及如何结合JDK8 Stream 和Future实现异步编程;
第4章讲解了Spring框架中提供的异步执行能力,包含Spring中如何对TaskExecutor进行抽象,如何使用注解@Async实现异步编程,以及其内部实现原理;
第5章讲解了比较热门的反应式编程相关的内容,包含什么是反应式编程,如何使用反应式编程规范的库RxJava和Reactor库实现异步编程;
第6章讲解了Web Servlet的异步非阻塞处理,包含Servlet 3.0规范是如何提供异步处理能力的,Servlet 3.1规范是如何解决IO阻塞问题的,以及在Spring MVC中如何进行异步处理。
第7章讲解与Servlet技术栈并行存在的、由Spring5.0提出来的Spring WebFlux的异步非阻塞处理,包含Spring WebFlux的由来、Spring WebFlux的并发模型、两种编程模型,以及如何使用Spring WebFlux来进行服务开发、Spring WebFlux内部的实现原理。
第8章简要介绍了业界为方便实现异步编程而设计的一些框架和中间件,比如异步基于事件驱动的网络编程框架Netty,高性能RPC框架Apache Dubbo,高性能线程间消息传递库Disruptor,异步基、分布式、基于事件驱动的编程框架Akka,高性能分布式消息平台Apache RocketMQ 。
第9章介绍新兴的Go语言是如何从语言层面提供了强大的异步编程能力的。
本书注重理论与实践相结合,且每个异步技术点都附有代码实例,帮助读者加深理解。
资深Java研发工程师,就职于淘宝,有多年的Java研发经验,在Java并发编程、异步编程等方面有深入研究和积累。对JUC包源码有深入的理解,熟悉常用开源框架实现原理。
著有畅销书《Java并发编程之美》。
异步与并发处理能力几乎已经成为软件系统的能力,现代的程序语言、运行平台和框架都对其提供了全面的支持,但是开发人员不能指望它们解决所有相关的问题,所以洞悉异步与并发的技术内幕是高级程序员的必修课。本书对Java异步编程相关的技术深入、系统地进行了归纳和总结,是非常优秀的学习材料。
异步编程是高性能程序的利器,同时也是程序员面临的挑战之一。要想写出优秀的异步编程代码,既需要对异步编程的原理有深刻理解,也需要对各种异步编程框架有全面掌握。本书涵盖了异步编程的方方面面,既对原理和框架进行了深入阐述,又对实战代码进行了展示,是全面和系统掌握异步编程的不二之选。
本书深入浅出地介绍了Java异步编程的基本概念及常用场景,是Java程序员进阶的之书。
全面解析异步编程的好书,从JDK Future到Reactor、从Netty到Disruptor,辅以案例,内容丰富,值得一读。
本书从编程语言和开发框架等维度讲解了如何进行异步编程,比如Spring WebFlux和Dubbo等框架,以及Java和Go等语言。相信大家在看完本书之后,能够全方位、立体化掌握异步编程的技巧。
— 没有更多了 —
以下为对购买帮助不大的评价