首页IT科技java开发实战经典pdf(读Java实战(第二版)笔记14_CompletableFuture及反应式编程背后的概念)

java开发实战经典pdf(读Java实战(第二版)笔记14_CompletableFuture及反应式编程背后的概念)

时间2025-04-30 05:14:11分类IT科技浏览3691
导读:1.潮流 1.1....

1.潮流

1.1.与应用程序运行的硬件平台相关

1.1.1.编写能充分利用多核处理器能力的软件

1.2.与应用程序的结构相关

1.2.1.反映了互联网应用对可用性日益增长的需求

2.聚合型应用(mashup)

2.1.使用来自多个数据源的内容            ,将它们聚集在一起                  ,从而简化我们的生活

3.并发

3.1.一种编程属性(重叠地执行)

3.2.在单核的机器上可以执行

4.并行

4.1.执行硬件的属性(同时执行)

5.为支持并发不断演进

5.1.提供了锁(通过synchronized类和方法)            、Runnable以及线程

5.2.Java 5又引入了java.util.concurrent包

5.3.Java 7为了使用fork/join实现分而治之算法      ,新增了java.util.concurrent.RecursiveTask

5.4.Java 8则增加了对流和流的并行处理(依赖于新增的Lambda表达式)的支持

5.5.Java 9提供了对分布式异步编程的显式支持

5.6.Java 9通过“发布-订阅            ”协议增加了对反应式编程的支持

6.线程以及更高层的抽象

6.1.对并行流的迭代是比显式使用线程更高级的概念

6.2.使用流(Stream)是对一种线程使用模式的抽象

6.3.执行器和线程池

6.3.1.Java 5提供了执行器框架            ,其思想类似于一个高层的线程池                  ,可以充分发挥线程的能力

6.3.2.能以很低的成本向线程池提交上千个任务      ,同时保证硬件匹配的任务执行

6.4.使用线程池都比直接操纵线程要好

6.4.1.使用k个线程的线程池只能并发地执行k个任务

6.4.2.超限的任务会被加入等待队列      ,直到现有任务执行完毕才会重新调度空闲线程去执行新任务

6.5.严格fork/join

6.5.1.线程创建以及与其匹配的join()在调用返回的嵌套方法调用中都以嵌套的方式成对出现

6.5.2.无论什么时候                  ,任何任务(或者线程)在方法调用中启动时            ,都会在其返回之前调用同一个方法

6.6.非嵌套方法调用

7.同步及异步API

7.1.同步API变为异步API

7.1.1.方法不再在物理返回其调用者的同时返回它的执行结果

7.1.2.被调用函数可以在返回结果就绪之前物理上提前返回调用函数

7.1.3.方法异步化(在完成它们的工作之前返回)能提升程序的并发度      ,其可以与用于循环结构的优化进行互补

7.2.Future风格的API

7.2.1.使用Java Future的改进版本

7.3.反应式风格的API

7.3.1.使用Java 9 java.util.concurrent.Flow接口的反应式编程风格

7.4.有害的睡眠及其他阻塞式操作

7.4.1.线程池中的任务即便是处于睡眠状态                  ,也会阻塞其他任务的执行

7.4.2.它们无法停止已经分配了线程的任务            ,因为这些任务的调度是由操作系统管理的

8.“线框-管道                  ”模型

8.1.box-and-channel

8.2.可以对异步系统进行可视化

8.3.设计和理解并发系统最好的方式是使用图形

9.反应式系统

9.1.一个程序,其架构很灵活                  ,可以在运行时调整以适应变化的需求

9.2.响应性

9.2.1.不能因为正在替某人处理一个大型任务就延迟其他用户的查询请求                  ,它必须实时地对输入进行响应

9.3.韧性

9.3.1.不能因为某个组件失效就无法提供服务

9.4.弹性

9.4.1.系统可以调整以适应工作负荷的变化,持续高效地运行

9.5.消息驱动

9.5.1.基于线框-管道模型提供了内部API            ,组件等待要处理的输入                  ,处理结果通过消息发送给其他的组件

10.Future和CompletableFuture

10.1.思维模式是计算的执行是独立且并发的

10.2.Future是一个一次性对象      ,它只能从头到尾执行代码一次

11.反应式编程

11.1.思维模式是类Future的对象随着时间的推移可以产生很多的结果

12.发布-订阅      ”的模型

12.1.pub-sub

12.2.订阅者可以订阅的发布者

12.3.名为订阅的连接

12.4.消息(也叫事件)            ,它们通过连接传输

12.5.数据的流动是从发布者(生产者)流向订阅者(消费者)

12.5.1.向上流(upstream)

12.5.2.向下流(downstream)

12.6.提供了对onError和onComplete方法的支持

12.6.1.比传统的观察者模式更加强大

12.7.背压

12.7.1.流量控制

12.8.压力

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
npm run service(node以及npm版本不对应出错解决方法) 织梦logo修改(织梦做wordpress博客那样调用tag标签对应文章数量的方法)