写在前面
你对异步编程了解多少?异步编程可以做什么?他是高级程序员的必修课,异步与并发处理能力几乎已经成为软件系统的必备能力,现在的程序语言、运行平台和框架都对其提供了全面的支持,但是开发人员不能指望它们解决所有相关的问题。
异步编程是可以让程序并行运行的一种手段,可以让程序中的一个工作单元与主应用程序线程分开独立运行,进而提高应用程序的性能和响应能力等。
本书特色
涵盖了Java中常见的异步编程场景,包括单JVM内的异步编程、跨主机通过网络通信的远程过程调用的异步调用与异步处理,以及Web请求的异步处理等。
讲解Java中每种异步编程技术时都附有案例,以理论与实践相结合的方式,帮助读者更好地掌握相关内容。
在讲解每种异步编程技术时多会对其实现原理进行讲解,让读者知其然也知其所以然。
对于最近比较热门的反应式编程以及WebFlux的使用与原理解析,本书也有一定的深入探索。
话不多说,来看看文档的主要内容
第1章认识异步编程
本章主要介绍异步编程的概念与作用,Java中异步编程的场景以及不同异步编程场景应使用什么技术来实现。
1.1异步编程概念与作用
1.2异步编程场景
1.3总结
第2章显式使用线程和线程池实现异步编程
本章主要探讨如何显式地使用线程和线程池实现异步编程,这包含如何显式使用线程实现异步编程以及使用线程编程的缺点,如何显式使用线程池实现异步编程以及线程池实现原理
2.1显式使用线程实现异步编程
2.2显式使用线程池实现异步编程
2.3总结
第3章基于JDK中的Future实现异步编程
本章主要讲解如何使用 JDK 中的 Future 实现异步编程,这包含如何使用 FutureTask实现异步编程及其内部实现原理;如何使用 CompletableFuture 实现异步编程及其内部实现原理,以及 CompletableFuture JDK Stream 如何完美结合的。
3.1 JDK中的Future
3.2 JDK中的FutureTask
3.3 JDK中的CompletableFuture
3.4 JDK8 Stream & CompletableFuture
3.5总结
第4章Spring框架中的异步执行
在Spring Framework 中分别使用 TaskExecutor TaskScheduler 接口提供异步执行和任务调度的抽象, 本章我 着重讲解基于 TaskExecutor 支撑的注解@ sync 是如何实现异步处理的
4.1 Spring中对TaskExecutor的抽象
4.2如何在Spring中使用异步执行
4.3 @Async注解异步执行原理
4.4总结
第5章基于反应式编程实现异步编程
本章主要讲解如何使用反应式编程实现异步编程,其包含了什么是反应式编程,为何需要反应式编程,反应式编程特点与价值是什么, 以及如何基于反应式编程实现库RxJava Reactor 实现异步编程
5.1反应式编程概述
5.2 Reactive Streams规范
5.3基于RxJava实现异步编程
5.4基于Reactor实现异步编程
5.5总结
第6章Web Servlet的异步非阻塞处理
本章主要探讨 Serv let3 目前的同步处理模型和缺点, Serv let3.0 范提供的异步处理能力与 Serv let3.1 规范提供的非阻塞 IO 能力,以及 Spring MVC 中提供的异步处理能力
6.1 Servlet概述
6.2 Servlet 3.0提供的异步处理能力
6.3 Servlet 3.1提供的非阻塞|O能力
6.4 Spring Web MVC的异步处理能力
6.5总结
第7章Spring WebFlux的异步非阻塞处理
本章主要讲解 Spring 框架 5.0 中引入的新的 WebFlux 技术枝,并介绍其存在的价值与意义、并发模型与适用场景、 如何 WebF ux 实现异步编程,以及其内部的现原理
7.1 Spring WebFlux概述
7.2 Reactive编程& Reactor库
7.3 WebFlux服务器
7.4 WebFlux的并发模型
7.5 WebFlux对性能的影响
7.6 WebFlux的编程模型
7.7 WebFlux原理浅尝
7.8 WebFlux的适用场景
7.9总结
第8章高性能异步编程框架和中间件
本章主要介绍一些高性能异步编程框架和中间件,这包含异步、基于事件驱动的网络编程框架——Netty ;高性能 RPC 框架——Apache Dubbo ;高性能线程间消息传递库——Disruptor ;异步、分布式、基于消息驱动的框架——Akka ;高性能分布式消息框架——Apache RocketMQ
8.1异步、基于事件驱动的网络编程框架——Netty
8.2高性能RPC框架一Apache Dubbo
8.3高性能线程间消息传递库——Disruptor
8.4异步、分布式、基于消息驱动的框架Akka
8.5高性能分布式消息框架Apache RocketMQ
8.6总结
第9章Go语言的异步编程能力
本章主要讲解 Go 语言的异步编程能力,这包含 Go 语言的线程模型,以及如何使用原语 goroutine channel 实现异步编程,最后基于 goroutine channel 构建了个支持回压、异步编程的管道
9.1 Go语言概述
9.2 Go语言的线程模型
9.3 goroutine与channel
9.4总结
以上就是Java异步编程实战的主要内容,需要完整内容的朋友,帮忙转发+关注,后台私信【666】即可免费获取,可以结合以下JVM的学习文档一起:
深入理解Java虚拟机:JVM高级特性与最佳实践
Java虚拟机并不局限于某一个特定发行商或者某一款特定虚拟机,只是由于OracleJDK/OpenJDK在市场占有率上的绝对优势,其中的HotSpot虚拟机不可避免地成为本书主要分析、讲解的对象,书中在涉及Java虚拟机自身实现相关的内容时,大多将以HotSpot虚拟机为目标对象来进行讲解。
目录大纲
PDF主要内容展示
以上就是《Java异步编程实战》+《深入理解Java虚拟机》的主要内容,需要以上完整内容朋友,帮忙转发此文章+关注我,后台私信【666】即可免费获取~