写点什么

超赞!阿里资深 P9 架构师总结出第一本《Java 异步编程实战》

发布于: 6 小时前

 什么是异步编程:

传统的同步编程是一种请求响应模型,调用一个方法,等待其响应返回异步编程就是要重新考虑是否需要响应的问题,也就是缩小需要响应的地方。因为越快获得响应,就是越同步化,顺序化,事务化,性能差化。异步编程通常是通过 fire and forget 方式实现,发射事件后即忘记,做别的事情了,无需立即等待刚才发射的响应结果了。(发射事件的地方称为生产者,而将在另外一个地方响应事件的处理者称为消费者).异步编程是一种事件驱动编程,需要完全改变思路,将“请求响应”的思路转变到“事件驱动”思路上,是一种软件编程思维的转变.下面几种你看参考一下 1、异步编程模型 (APM) 模式(也称为 IAsyncResult 模式),其中异步操作要求 Begin 和 End 方法(例如,异步写操作的 BeginWrite 和 EndWrite)。对于新的开发工作不再建议采用此模式。2、基于事件的异步模式 (EAP) 需要一个具有 Async 后缀的方法,还需要一个或多个事件、事件处理程序、委托类型和 EventArg 派生的类型。EAP 是在 .NET Framework 2.0 版中引入的。对于新的开发工作不再建议采用此模式。3、基于任务的异步模式 (TAP),该模式使用一个方法表示异步操作的启动和完成。.NET Framework 4 中引入了 TAP,并且是 .NET Framework 中异步编程的建议方法。



点击并拖拽以移动


这是一部全面解析 Java 异步编程的著作,针对各种常见异步编程场景,从编程语言开发框架等角度深入讲解了异步编程的原理和方法。作者是淘宝的资深 Java 技术工程师,在 Java 异步编程、并发编程领域有深厚的积累。

目录



点击并拖拽以移动



点击并拖拽以移动



点击并拖拽以移动


异步编程是可以让程序并行运行的一种手段,可以让程序中的一个工作单元与主应用程序线程分开独立运行,进而提高应用程序的性能和响应能力等。

虽然 Java 为不同技术域提供了相应的异步编程技术,但是这些异步编程技术被散落到不同技术域的技术文档中,没有一个统一的文档对其进行梳理归纳。另外这些技术之间是什么关系,各自的出现都是为了解决什么问题,我们也很难找到相关资料来解释。

好的资料不做过多展示,这份史上第一本《Java 异步编程实战》只需要点击【传送门】可以获取到!

内容特点

本书涵盖了 Java 中常见的异步编程场景,包括单 JVM 内的异步编程、跨主机通过网络通信的远程过程调用的异步调用与异步处理,以及 Web 请求的异步处理等。

虽然 Java 为不同技术域提供了相应的异步编程技术,但是这些异步编程技术被散落到不同技术域的技术文档中,没有一个统一的文档对其进行梳理归纳。另外这些技术之间是什么关系,各自的出现都是为了解决什么问题,我们也很难找到相关资料来解释。

异步编程场景



点击并拖拽以移动



点击并拖拽以移动


线程池 ThreadPoolExecutor 原理剖析



点击并拖拽以移动


JDK 中的 Future

在 Java 并发包(JUC 包)中 Future 代表着异步计算结果,Future 中提供了一系列方法用来检查计算结果是否已经完成,也提供了同步等待任务执行完成的方法,还提供了获取计算结果的方法等。当计算结果完成时只能通过提供的 get 系列方法来获取结果,如果使用了不带超时时间的 get 方法,则在计算结果完成前,调用线程会被一直阻塞。另外计算任务是可以使用 cancel 方法来取消的,但是一旦一个任务计算完成,则不能再被取消了。



点击并拖拽以移动


反应式编程概述



点击并拖拽以移动


在 Servlet3.0 规范前,Servlet 容器对 Servlet 都是以每个请求对应一个线程这种 1:1 的模式进行处理的,如图 6-1 所示(本节 Servlet 容器固定使用 Tomcat 来进行讲解)。



点击并拖拽以移动


Spring WebFlux 概述



点击并拖拽以移动



点击并拖拽以移动


好的资料不做过多展示,这份史上第一本《Java 异步编程实战》只需要点击【传送门】就可以获取到!



点击并拖拽以移动

用户头像

还未添加个人签名 2021.07.23 加入

还未添加个人简介

评论

发布
暂无评论
超赞!阿里资深P9架构师总结出第一本《Java异步编程实战》