`

同步调用和异步调用

阅读更多

我们知道,常见的方法调用都是同步调用,这种调用方式是一种阻塞式的调用方式,即客户端(主调用方)代码一直阻塞等待直到被服务端(被调用方)返回 为止。这种调用方式相对比较直观,也是大部分编程语言直接支持的一种调用方式。但是,如果我们面对是基于粗粒度的服务组件,面对的是一些需要比较长时间才 能有响应的应用场景,那么我们就需要一种非阻塞式调用方式,即异步调用方式。

SCA编程模式提供了三种方式的异步调用,它们分别是:

1. 单向调用方式。

2. 延迟响应方式。

3. 请求回调方式。

单向调用

单向调用方式是最为简单的异步调用方式,在这种调用方式中,客户端发出请求之后就不再关心服务端的情况,包括是否执行成功,返回值是什么等等。我们可以用下面的图 4示来描述这种单向调用方式:


图 4: 单向调用
图 4: 单向调用

单向调用方式是一种不管调用结果的方式,但是在很多情况下我们是需要知道调用结果的。我们需要知道调用是否成功,需要知道调用的结果,就算调用失败我们也希望知道错误代码等信息。在这种情况下,延迟响应和请求回调就是两种能够让我们知道调用结果的方式。

延迟响应方式

延迟响应方式是指客户端在发出调用请求之后继续执行,但是经过一段时间之后,客户端再调用相应的方法去检索返回结果,并通过参数指定如何根据调用的 结果而执行进一步动作。由于是异步调用方式,因此,在第一次发出调用请求的时候,服务端需要返回一个称为票据(Ticket)的对象。这个对象会作为第二 次发出检索结果请求时的一个参数。显然,这个Ticket对象的作用与WEB编程的SessionID非常类似。我们可以用图 5 来表示延迟相应调用方式:


图 5:延迟响应调用方式
图 5:延迟响应调用方式

分享到:
评论

相关推荐

    ice同步调用和异步调用实例代码

    Ice 是一种针对客户端和服务器进行通信的面向对象的中间件平台。Ice 为构建面向对象的客户-服务器应用提供了工具、API 和库支持。...客户和服务器可以分别部署,可以运行在...本代码为ice同步调用和异步调用实例代码。

    同步调用和异步调用WebService

    本文给大家介绍webservice同步调用和异步调用,同步调用就是一个同步操作会阻塞整个当前的进程,直到这个操作完成才能执行下一段代码,异步调用不会阻塞启动操作的调用线程,调用程序必须通过轮流检测,或者等待完成...

    C#同步调用,异步调用,异步回调.docx

    C#同步调用,异步调用,异步回调的详细使用说明以及注意事项,内含代码,亲测可行

    python同步调用异步情况示例

    同步调异步

    WEB服务调用框架的设计与实现

    根据用户输入的参数,axis2使用底层API,根据访问入口点构造soap消息,实现了特定服务的同步调用和异步调用,同时还实现了带附件的服务调用。 本系统通过以上过程,实现服务调用框架,拓展了面向服务的应用。同时,...

    python如何实现异步调用函数执行

    在实现异步调用之前我们先进行什么是同步调用和异步调用 同步:是指完成事务的逻辑,先执行第一个事务,如果阻塞了,会一直等待,直到这个事务完成,再执行第二个事务,顺序执行 异步:是和同步相对的,异步是指在...

    Angular异步变同步处理方法

    今天小编就为大家分享一篇Angular异步变同步处理方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    WebService同步异步调用示例代码.rar

    WebService同步异步调用示例代码。 完全自己写的,c#语言,sqlserver数据库,两网站之间调用

    Nodejs让异步变成同步的方法

    今天小编就为大家分享一篇关于Nodejs让异步变成同步的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    解析C#中委托的同步调用与异步调用(实例详解)

    本篇文章是对C#中委托的同步调用与异步调用进行了详细的分析介绍,需要的朋友参考下

    C#TCP/IP同步和异步通信

    基于C#的TCP/IP同步以及异步通信实现方法,我已经把两种方法封装好了,直接调用就可以了,不仅可以实时获取连接的客户端,还可以实时刷新客户端连接,很好用的,如果有什么问题,欢迎联系我!

    WCF 同步 异步调用 实例

    实现WCF 同步、异步调用请求实例, Winform 实现客户端 和服务端。

    同步或异步调用EXE(创建子进程并重定向子进程的输入、输出)

    写了个类,用以调用其他exe,可以以同步或异步方式调用,可以设置超时时长,exe运行中产生的输出信息也可捕获到。 见:http://blog.csdn.net/beanjoy/article/details/9167767

    servlet tcp socket 异步转同步调用的两种解决办法

    场景如下图, ... 1,这里的服务端到认证是TCP 异步的。 2,终端到服务端是HTTP同步的。 这里需要服务端接收到认证返回的数据结果过后...附件代码是解决该问题的两种解决方案,可以用户同步的mina之类的socket调用。

    C# 委托的三种调用示例(同步调用 异步调用 异步回调)

    本文将主要通过同步调用、异步调用、异步回调三个示例来讲解在用委托执行同一个加法类的时候的的区别和利弊

    使用异步方式调用同步方法(实例详解)

    BeginInvoke 方法启动异步调用。该方法与您需要异步执行的方法具有相同的参数,还有另外两个可选参数。第一个参数是一个 AsyncCallback 委托,该委托引用在异步调用完成时要调用的方法。第二个参数是一个用户定义的...

    C#同步异步操作说明

    同步方法和异步方法的区别 同步方法: 调用在程序继续执行之前需要等待同步方法执行完毕返回结果 异步方法: 则在被调用之后立即返回以便程序在被调用方法完成其任务的同时执行其它操作

Global site tag (gtag.js) - Google Analytics