Java异步编程实战 - (EPUB全文下载)
文件大小:0.36 mb。
文件格式:epub 格式。
书籍内容:
Java异步编程实战
第1章 认识异步编程
1.1 异步编程概念与作用
1.2 异步编程场景
1.3 总结
第2章 显式使用线程和线程池实现异步编程
2.1 显式使用线程实现异步编程
2.2 显式使用线程池实现异步编程
2.2.2 线程池ThreadPoolExecutor原理剖析
2.3 总结
第3章 基于JDK中的Future实现异步编程
3.1 JDK中的Future
3.2 JDK中的FutureTask
3.2.2 FutureTask的类图结构
3.2.3 FutureTask的run()方法
3.2.4 FutureTask的get()方法
3.2.5 FutureTask的cancel(boolean mayInterruptIfRunning)方法
3.2.6 FutureTask的局限性
3.3 JDK中的CompletableFuture
3.3.2 显式设置CompletableFuture结果
3.3.3 基于CompletableFuture实现异步计算与结果转换
3.3.4 多个CompletableFuture进行组合运算
3.3.5 异常处理
3.3.6 CompletableFuture概要原理
3.4 JDK8 Stream&CompletableFuture
3.4.2 当Stream遇见CompletableFuture
3.5 总结
第4章 Spring框架中的异步执行
4.1 Spring中对TaskExecutor的抽象
4.2 如何在Spring中使用异步执行
4.2.2 使用注解@Async实现异步执行
4.3 @Async注解异步执行原理
4.4 总结
第5章 基于反应式编程实现异步编程
5.1 反应式编程概述
5.2 Reactive Streams规范
5.3 基于RxJava实现异步编程
5.4 基于Reactor实现异步编程
5.5 总结
第6章 Web Servlet的异步非阻塞处理
6.1 Servlet概述
6.2 Servlet 3.0提供的异步处理能力
6.3 Servlet 3.1提供的非阻塞IO能力
6.4 Spring Web MVC的异步处理能力
6.4.1 基于DeferredResult的异步处理
6.4.2 基于Callable实现异步处理
6.5 总结
第7章 Spring WebFlux的异步非阻塞处理
7.1 Spring WebFlux概述
7.2 Reactive编程&Reactor库
7.3 WebFlux服务器
7.4 WebFlux的并发模型
7.5 WebFlux对性能的影响
7.6 WebFlux的编程模型
7.6.1 WebFlux注解式编程模型
7.6.2 WebFlux函数式编程模型
7.7 WebFlux原理浅尝
7.7.1 Reactor Netty概述
7.7.2 WebFlux服务器启动流程
7.7.3 WebFlux一次服务调用流程
7.8 WebFlux的适用场景
7.9 总结
第8章 高性能异步编程框架和中间件
8.1 异步、基于事件驱动的网络编程框架——Netty
8.1.2 Netty的线程模型
8.1.3 TCP半包与粘包问题
8.1.4 基于Netty与CompletableFuture实现RPC异步调用
8.2 高性能RPC框架——Apache Dubbo
8.2.2 Dubbo的异步调用
8.2.3 Dubbo的异步执行
8.3 高性能线程间消息传递库——Disruptor
8.3.2 Disruptor的特性详解
8.3.3 基于Disruptor实现异步编程
8.4 异步、分布式、基于消息驱动的框架——Akka
8.4.2 传统编程模型存在的问题
8.4.3 Actor模型解决了传统编程模型的问题
8.4.4 基于Akka实现异步编程
8.5 高性能分布式消息框架——Apache RocketMQ
8.5.2 基于Apache RocketMQ实现系统间异步解耦
8.6 总结
第9章 Go语言的异步编程能力
9.1 Go语言概述
9.2 Go语言的线程模型
9.2.1 一对一模型
9.2.2 多对一模型
9.2.3 多对多模型
9.2.4 Go语言的线程模型
9.3 goroutine与channel
9.3.2 channel
9.3.3 构建管道实现异步编程
9.4 总结
第1章 认识异步编程
本章主要介绍异步编程的概念与作用,Java中异步编程的场景以及不同异步编程场景应使用什么技术来实现。
1.1 异步编程概念与作用
通常Java开发人员喜欢使用同步代码编写程序,因为这种请求(request)/响应(response)的方式比较简单,并且比较符合编程人员的思维习惯;这种做法很好,直到系统出现性能瓶颈。在使用同步编程方式时,由于每个线程同时只能发起一个请求并同步等待返回,所以为了提高系统性能,此时我们就需要引入更多的线程来实现并行化处理。但是多线程下对共享资源进行访问时,不可避免会引入资源争用和并发问题;另外,操作系统层面对线程的个数是有限制的,不可能通过无限增加线程数来提供系统性能;而且,使用同步阻塞的编程方式还会浪费资源,比如发起网络IO请求时,调用线程就会处于同步阻塞等待响应结果的状态,而这时候调用线程明明可以去做其他事情,等网络IO响应结果返回后再对结果进行处理。
可见通过增加单机系统线程个数的并行编程方式并不是“灵丹妙药”。通过编写异步、非阻塞的代码,则可以使用相同的底层资源将执行切换到另一个活动任务,然后在异步处理完成后再返回到当前线程继续处理,从而提高系统性能。
异步编程是可以让程序并行运行的一种手段,其可以让程序中的一个工作单元与主应用程序线程分开独立运行,并且在工作单元运行结束后,会通知主应用程序线程它的运行结果或者失败原因。使用异步编程可以提高应用程序的性能和响应能力等。
比如当调用线程使用异步方式发起网络IO请求后,调用线程 ............
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » Java异步编程实战 - (EPUB全文下载)