Paip.Php  Java 异步编程。推模型与拉模型。响应式(Reactive)”编程FutureData总结... 1

1.1.1       异步调用的实现以及角色(:调用者 提货单) FutureData. 1

1.1.2       异步编程接口设计(,回调函数, 事件触发)1

1.1.3       异步编程的优缺点... 2

1.1.4       推模型与拉模型... 2

1.1.5       “响应式(Reactive)”编程。响应式框架... 2

1.1.6       异步同步化... 2

1.1.7       img标签异步... 3

1.1.8       Php异步调用fscok,popen()函数, CURL扩展, fscokopen()3

1.1.9       Java的异步实现... 3

1.1.10     JavaScript的异步编程模式... 3

Paip.Php Java 异步编程。推模型与拉模型。响应式(Reactive)”编程FutureData总结

作者Attilax 艾龙,  EMAIL:1466519819@qq.com
来源:attilax的专栏
地址:http://blog.csdn.net/attila

1.1.1  异步调用的实现以及角色(:调用者 提货单) FutureData

,实现异步调用的角色有如下三个角色:调用者 提货单真实数据

一个调用者在调用耗时操作,不能立即返回数据时,先返回一个提货单.然后在过一断时间后凭提货单来获取真正的数据.去

Java多线程实现异步调用_数据库_开发_比特网.htm

1.1.2          异步编程接口设计(回调函数, 事件触发)

 

W3C原生接口的设计经常采用回调函数和事件触发形式,前者在调用异步函数时直接传入回调函数作为参数,后者在原始对象上绑定事件处理函数,异步函数出错时一般不会抛出异常,而是通过调用错误回调函数或触发错误事件。从语义上看,回调函数形式是为了获取某一个函数的运行结果,而事件触发形式通常会用于表示某些状态变化(加载、出错、进度变化、收到消息等等)。个人或团队开发小型项目时可以参考这两种形式的接口设计

1.1.3          异步编程的优缺点

异步编程的优点是显而易见的,异步编程你可以实现前面例子中一边运行一边更新的效果;或是利用异步IO让UI运行更加流畅,比如通过XMLHTTPRequest的异步接口获取网络数据,在获取完成后再更新界面,在异步获取数据的时候不会阻碍UI的更新。在众多HTML5设备API的设计中都充分采用了异步编程模式,例如W3C的File System API、File API、Indexed Database API,Windows 8API,PhoneGap API,服务端脚本Node JS API等等。

异步编程也有一些缺点,造成深度嵌套的函数调用,破坏了原有的简单逻辑,让代码难以读懂。

1.1.4  推模型与拉模型

平时我们使用最多的便是“交互式(Interactive)”的编程方式,采用的是组件之间的相互调用来表现逻辑。例如,对象A向对象B请求数据并等待返回,待对象B完成并返还数据之后A才继续进行后面的操

交互式(Interactive)”的编程方法,采纳的是组件之间的互相挪用来表现逻辑。比方,工具A向工具B哀求数据并期待返回,待工具B实现并返还数据以后A才继承进行背面的操纵。

1.1.5   “响应式(Reactive)”编程。响应式框架

交互式编程对应的便是响应式(Reactive)”编程

响应式编程是一种基于“改变”的编程方式。例如在交互式编程中,A = B + C这样的表达式意味着将B与C之和赋给A,而此后B与C的改变都与A无关。而在响应式编程中,A会去“响应”B或C的变化,即一旦B或C改变之后,A的值 也会随之变化。响应式编程的一个典型应用便是GoF23中的观察者(Observer)模

在之前的.NET框架中并没有对这样一种编程模型指定“标准化(Formallized)”接口,不过在.NET 4.0的基础类库中增加了IObservable及IObserver接

异步编程与响应式框架 -initphp的代码世界,专注PHP,Java,Android开发 - 博客频道 - CSDN.NET.htm

1.1.6          异步同步化

第三方的异步接口一定程度上解决了代码逻辑与执行顺序不一致的问题,但是仍然有些情况下,让代码难以读懂。我们还以1.1节中的代码为例,updateAsync即使采用PromisesAPI并不会更好理解,而代码实现的功能其实就是一个很简单的循环+更新的功能。这时候就需要一些异步同步化来帮助实现。

所谓异步同步化顾名思义就是采用同步形式的语法实现异步调用。这里简单地介绍一下老赵的Jscex,它是一个纯JavaScript实现的库,可以在任何浏览器或JavaScript环境中运行

1.1.7          img标签异步

嵌入一个img标签,src指向要执行的耗时脚本。
这种方法最简单,也最快。服务器端不用做任何的调用。
但是缺点是,一般来说Ajax都应该在onLoad以后触发,也就是说,用户点开页面后,就关闭,那就不会触发我们的后台脚本了。
而使用img标签的话,这种方式不能称为严格意义上的异步执行。用户浏览器会长时间等待php脚本的执行完成,也就是用户浏览器的状态栏一直显示还在load。
当然,还可以使用其他的类似原理的方法,比如script标签等等

1.1.8          Php异步调用fscok, popen()函数, CURL扩展, fscokopen()

使用fscok实现异步调用PHP _ 风雪之隅.htm

PHP异步调用实现方式 - PHP教程_PHP编程_PHP开发技术文章 - 红黑联盟.htm

PHP如何实现异步数据调用 -- 简明现代魔法.htm

1.1.9          Java的异步实现

:ZynapticReaction 是一款灵活的Java异步编程框架,

异步加载数据的三种实现- JAVA编程语言程序开发技术文章- 红黑联盟.htm

1.1.10 JavaScript的异步编程模式

于内嵌函数的介绍请看JavaScript世界的一等公民-函数),然后调用了updateLater,在这个函数中先是更新output结点的内容为i,然后通过setTimeout让updateLater函数异步执行。这个函数的运行后,你会看到UI界面上从0到999快速地更新过程,这就是异步执行的结果。

可见,在JavaScript中异步编程甚至是一种必要的编程模式。

 第三方异步接口设计

采用回调函数形式的接口写代码,会带来比较严重的函数嵌套问题,就像著名的LISP一样,引入大量有争议性的括号,让本来是前后顺序执行的代码段形式上变成了一层套一层的结构,影响了JavaScript代码逻辑的清晰性。解决这个问题,要让逻辑上的先后顺序执行的代码,在形式上也是顺序的,而不是嵌套的,这就需要更好的异步接口设计方案。

CommonJS是一个著名的JavaScript的开源组织,目标是设计与JS环境无关的

JavaScript异步编程 - 扈亚楠(Java) - 博客频道 - CSDN.NET.htm

Paip.Php Java 异步编程。推模型与拉模型。响应式(Reactive)”编程FutureData总结... 1相关推荐

  1. 响应式编程(一)什么是响应式编程

    响应式编程是相对于阻塞式编程,我们在这里主要讲的是springBoot2中响应式webflux Spring Boot 2.0 WebFlux 了解 WebFlux,首先了解下什么是 Reactive ...

  2. 响应式编程优点 有效_Reactive(响应式)编程

    Reactor 和Rxjava是Reactive Programming范例的一个具体实现,可以概括为: 反应式编程是一种涉及数据流和变化传播的异步编程范例.这意味着可以通过所采用的编程语言轻松地表达 ...

  3. 响应式编程优点 有效_什么是响应式编程?

    响应式编程是一种通过异步和数据流来构建事物关系的编程模型.这里每个词都很重要,"事物的关系"是响应式编程的核心理念,"数据流"和"异步"是实 ...

  4. java 自适应屏幕_自适应屏幕的CSS响应式布局设计技巧总结

    摘要:这篇CSS教程栏目下的"自适应屏幕的CSS响应式布局设计技巧总结",介绍的技术点是"css响应式.响应式布局.响应式.自适应.CSS.设计",希望对大家开 ...

  5. flux服务器推消息,在Spring WebFlux响应式处理程序中发送JMS消息:它是否阻塞?

    这是反应性处理的正确方法吗?我看到2个线程一个反应性的nio,直到并包括flatMap(fareRepo :: save).另一个线程是计算线程,它从发送消息开始,一直持续到ServerRespons ...

  6. java事件驱动模型_Spring事件驱动模型详解

    事件驱动模型简介 事件驱动模型也就是我们常说的观察者,或者发布-订阅模型:理解它的几个关键点:首先是一种对象间的一对多的关系:最简单的如交通信号灯,信号灯是目标(一方),行人注视着信号灯(多方): 当 ...

  7. 一文带你彻底了解Java异步

    随着RxJava.Reactor等异步框架的流行,异步编程受到了越来越多的关注,尤其是在IO密集型的业务场景中,相比传统的同步开发模式,异步编程的优势越来越明显. 那到底什么是异步编程?异步化真正的好 ...

  8. [转]异步编程与响应式框架

    作者:老赵 来源:http://blog.zhaojie.me/2010/09/async-programming-and-reactive-framework.html 前言 异步操作是强大的,它是 ...

  9. 异步编程与响应式框架

    前言 异步操作是强大的,它是许多高伸缩性架构的基石.异步操作在许多情况下是必须的,例如在客户端保持用户界面的响应能力,以及在日益兴起的云计算场景中.但是,异步编程又是十分困难的,它让这让许多程序员敬而 ...

  10. Java:理解java响应式编程

    原文:Understanding reactive programming in Java https://nullbeans.com/understanding-reactive-programmi ...

最新文章

  1. 2021年大数据ELK(二十五):添加Elasticsearch数据源
  2. linux java内存分析_Java内存分析利器MAT使用详解
  3. java 排序算法 讲解_java实现排序算法之冒泡排序法详细讲解
  4. XenApp部署之配置XenApp Server
  5. Sequence in the Pocket
  6. Command ‘ifconfig‘ not found
  7. 【题解报告】Leecode367. 有效的完全平方数——Leecode每日一题系列
  8. Pentium 4处理器架构/微架构/流水线 (8) - NetBurst执行核详解 - 指令时延与吞吐量
  9. c语言超市账务管理源代码,C语言 超市管理系统源程序.doc
  10. Access denied for user 'root'@'localhost' Could not obtain connection
  11. nand ECC 算法记录
  12. 跟踪AppInfo代码
  13. grpc进阶篇之resolver
  14. 微信小程序如何封装自己的组件?
  15. 国家及地区MySQL数据
  16. Mac中搜狗输入法在各应用中默认中英文状态
  17. opengl-PBR基于物理的渲染(Physically Based Rendering):理论基础
  18. ad7793编程c语言,AD7793在高精度温控设备中的应用
  19. 如何知道,你真正想要什么?
  20. 使用BiLSTM对中文进行完形填空

热门文章

  1. Sudo环境变量继承
  2. Exchange 跨林迁移 Part4 双方域管理员加到对方管理员组
  3. LC60 Permutation Sequence
  4. 如何优化 Java 性能? 1
  5. 百度员工揭秘8月算法变动
  6. Lync Server 2013 Preview 安装体验(四)安装lync server
  7. 【转】Javascript 的词法作用域、调用对象和闭包
  8. ASP 中用Ctrl+Enter提交表单
  9. MyEclipse2014+JDK1.7+Tomcat8.0+Maven3.2 开发环境搭建
  10. Android Material Design调色板