Java异步编程实战 作者:翟陆续 出版时间:2020年版内容简介 内容简介 /n这是一部全面解析Java异步编程的著作,针对各种常见异步编程场景,从编程语言、开发框架等角度深入讲解了异步编程的原理和方法。作者是淘宝的资深Java技术工程师,在Java异步编程、并发编程领域有深厚的积累。 /n全书共9章,每章内容概括如下: /n第1-2章主要介绍了异步编程的概念、适用场景,以及如何使用线程和线程池来实现异步编程; /n第3章首先讲解JDK中的各种Future及其内部实现原理,然后讲解如何使用Future实现异步编程,以及如何结合JDK8 Stream 和Future实现异步编程; /n第4章讲解了Spring框架中提供的异步执行能力,包含Spring中如何对TaskExecutor进行抽象,[email protected],以及其内部实现原理; /n第5章讲解了比较热门的反应式编程相关的内容,包含什么是反应式编程,如何使用反应式编程规范的库RxJava和Reactor库实现异步编程; /n第6章讲解了Web Servlet的异步非阻塞处理,包含Servlet 3.0规范是如何提供异步处理能力的,Servlet 3.1规范是如何解决IO阻塞问题的,以及在Spring MVC中如何进行异步处理。 /n第7章讲解与Servlet技术栈并行存在的、由Spring5.0提出来的Spring WebFlux的异步非阻塞处理,包含Spring WebFlux的由来、Spring WebFlux的并发模型、两种编程模型,以及如何使用Spring WebFlux来进行服务开发、Spring WebFlux内部的实现原理。 /n第8章简要介绍了业界为方便实现异步编程而设计的一些框架和中间件,比如异步基于事件驱动的网络编程框架Netty,高性能RPC框架Apache Dubbo,高性能线程间消息传递库Disruptor,异步基、分布式、基于事件驱动的编程框架Akka,高性能分布式消息平台Apache RocketMQ 。 /n第9章介绍新兴的Go语言是如何从语言层面提供了强大的异步编程能力的。 /n本书注重理论与实践相结合,且每个异步技术点都附有代码实例,帮助读者加深理解。目录前言 /n第1章 认识异步编程1 /n1.1 异步编程概念与作用1 /n1.2 异步编程场景2 /n1.3 总结9 /n第2章 显式使用线程和线程池实现异步编程10 /n2.1 显式使用线程实现异步编程10 /n2.2 显式使用线程池实现异步编程14 /n2.2.1 如何显式使用线程池实现异步编程14 /n2.2.2 线程池ThreadPoolExecutor原理剖析17 /n2.3 总结34 /n第3章 基于JDK中的Future实现异步编程35 /n3.1 JDK 中的Future35 /n3.2 JDK中的FutureTask37 /n3.2.1 FutureTask 概述37 /n3.2.2 FutureTask的类图结构41 /n3.2.3 FutureTask的run() 方法45 /n3.2.4 FutureTask的get()方法48 /n3.2.5 FutureTask的cancel(boolean mayInterruptIfRunning)方法50 /n3.2.6 FutureTask的局限性52 /n3.3 JDK中的CompletableFuture52 /n3.3.1 CompletableFuture 概述52 /n3.3.2 显式设置CompletableFuture结果54 /n3.3.3 基于CompletableFuture实现异步计算与结果转换56 /n3.3.4 多个CompletableFuture进行组合运算65 /n3.3.5 异常处理68 /n3.3.6 CompletableFuture概要原理70 /n3.4 JDK8 Stream & CompletableFuture76 /n3.4.1 JDK8 Stream76 /n3.4.2 当Stream遇见CompletableFuture79 /n3.5 总结81 /n第4章 Spring框架中的异步执行82 /n4.1 Spring中对TaskExecutor的抽象82 /n4.2 如何在Spring中使用异步执行84 /n4.2.1 使用TaskExecutor实现异步执行84 /n[email protected] /n[email protected] /n4.4 总结109 /n第5章 基于反应式编程实现异步编程110 /n5.1 反应式编程概述110 /n5.2 Reactive Streams规范120 /n5.3 基于RxJava实现异步编程123 /n5.4 基于Reactor实现异步编程133 /n5.5 总结136 /n第6章 Web Servlet的异步非阻塞处理137 /n6.1 Servlet概述137 /n6.2 Servlet 3.0 提供的异步处理能力138 /n6.3 Servlet 3.1 提供的非阻塞IO能力145 /n6.4 Spring Web MVC 的异步处理能力153 /n6.4.1 基于DeferredResult的异步处理154 /n6.4.2 基于Callable实现异步处理155 /n6.5 总结157 /n第7章 Spring WebFlux的异步非阻塞处理158 /n7.1 Spring WebFlux概述158 /n7.2 Reactive编程 & Reactor库159 /n7.3 WebFlux服务器160 /n7.4 WebFlux的并发模型163 /n7.5 WebFlux对性能的影响164 /n7.6 WebFlux的编程模型164 /n7.6.1 WebFlux注解式编程模型165 /n7.6.2 WebFlux函数式编程模型168 /n7.7 WebFlux原理浅尝171 /n7.7.1 Reactor Netty概述171 /n7.7.2 WebFlux服务器启动流程173 /n7.7.3 WebFlux一次服务调用流程182 /n7.8 WebFlux的适用场景185 /n7.9 总结186 /n第8章 高性能异步编程框架和中间件187 /n8.1 异步、基于事件驱动的网络编程框架—Netty187 /n8.1.1 Netty概述187 /n8.1.2 Netty的线程模型190 /n8.1.3 TCP半包与粘包问题196 /n8.1.4 基于Netty与CompletableFuture实现RPC异步调用198 /n8.2 高性能RPC框架—Apache Dubbo209 /n8.2.1 Apache Dubbo概述209 /n8.2.2 Dubbo的异步调用210 /n8.2.3 Dubbo的异步执行214 /n8.3 高性能线程间消息传递库—Disruptor217 /n8.3.1 Disruptor概述217 /n8.3.2 Disruptor的特性详解220 /n8.3.3 基于Disruptor实现异步编程223 /n8.4 异步、分布式、基于消息驱动的框架—Akka227 /n8.4.1 Akka概述227 /n8.4.2 传统编程模型存在的问题228 /n8.4.3 Actor模型解决了传统编程模型的问题232 /n8.4.4 基于Akka实现异步编程237 /n8.5 高性能分布式消息框架—Apache RocketMQ244 /n8.5.1 Apache RocketMQ概述244 /n8.5.2 基于Apache RocketMQ实现系统间异步解耦246 /n8.6 总结254 /n第9章 Go语言的异步编程能力255 /n9.1 Go语言概述255 /n9.2 Go语言的线程模型256 /n9.2.1 一对一模型256 /n9.2.2 多对一模型257 /n9.2.3 多对多模型258 /n9.2.4 Go语言的线程模型259 /n9.3 goroutine与channel261 /n9.3.1 goroutine261 /n9.3.2 channel265 /n9.3.3 构建管道实现异步编程269 /n9.4 总结273 上一篇: JavaScript高级程序设计(第4版) [美]弗里斯比 2020年版 下一篇: Java网络编程核心技术详解:视频微课版 孙卫琴 2020年版