查看: 88|回复: 0

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

[复制链接]

3

主题

6

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2022-12-2 13:10:50 | 显示全部楼层 |阅读模式
什么是异步编程:

传统的同步编程是一种请求响应模型,调用一个方法,等待其响应返回
异步编程就是要重新考虑是否需要响应的问题,也就是缩小需要响应的地方。因为越快获得响应,就是越同步化,顺序化,事务化,性能差化。
异步编程通常是通过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中常见的异步编程场景,包括单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概述




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表