一种以同步方式进行远程过程调用的方法及装置制造方法及图纸

技术编号:16717813 阅读:39 留言:0更新日期:2017-12-05 16:19
本发明专利技术公开了一种以同步方式进行远程过程调用的方法,包括:在调用远程过程时,创建与所述远程过程对应的信号事件,所述信号事件的初始状态为无信号状态;将调用所述远程过程所需的调用请求发送给所述远程过程的被调用端;调用一预设函数将所述远程过程对应的线程挂起,并等待所述被调用端返回的请求结果;在接收到所述请求结果时,将所述信号事件的状态变更为有信号状态,从而使得所述预设函数将所述远程过程对应的线程唤醒。本发明专利技术实现了在进行远程过程调用时,能够降低系统资源浪费,保证程序性能的技术效果。同时,本发明专利技术还公开了一种以同步方式进行远程过程调用的装置。

A method and device for remote procedure call in sync

The invention discloses a method for remote procedure call in a synchronous manner including: in the remote procedure call, create a signal event corresponding to the remote process, the initial state of the signal events to the nonsignaled state; will be required to call the remote procedure call request is sent to the remote the process is called end; call a default function the remote procedure corresponding to the threads, and wait for the results of the request is called end back; upon receiving the request results when the signal event state change is signaled, so that the default function of the the corresponding remote wakeup. The invention realizes the technical effect of reducing the waste of the system resources and ensuring the performance of the program when the remote procedure call is carried out. At the same time, the invention also discloses a device for remote procedure call in a synchronous way.

【技术实现步骤摘要】
一种以同步方式进行远程过程调用的方法及装置
本专利技术涉及网络直播
,尤其涉及一种以同步方式进行远程过程调用的方法及装置。
技术介绍
随着网络通信技术的进步和宽带网络的提速,网络直播得到了越来越多的发展和应用。在网络直播过程中,经常会进行远程过程调用。所谓远程过程调用,就是一个进程调用另外一个进程所提供的方法,但是在调用者的角度仍然跟调用本进程的函数是一致的。在远程过程调用中,将要提供给被调用者进程的所有参数序列化为一个网络消息,然后通过网络传输发送到被调用者进程中。被调用者处理完成相应的服务后,将产生的结果也序列化成一个网络消息,发送到调用者进程。而在这个过程中,当调用者调用一个远程过程到收到结果之前,通常都是阻塞的;也就是在收到来自被调用者的应答结果之前,调用者调用一个远程过程之后,一直阻塞住,直到收到应答结果才会被唤醒。目前的远程过程调用机制中,通常在调用远程过程后,会循环调用系统的Sleep睡眠方法,直到接收到应答结果消息,或者是等待超时后,才会返回。但是,这种做法比较粗糙,因为调用系统Sleep函数时,并没有将当前线程的执行权剥夺,当前调用远程过程的线程仍然会耗用系统本文档来自技高网...
一种以同步方式进行远程过程调用的方法及装置

【技术保护点】
一种以同步方式进行远程过程调用的方法,其特征在于,包括:在调用远程过程时,创建与所述远程过程对应的信号事件,所述信号事件的初始状态为无信号状态;将调用所述远程过程所需的调用请求发送给所述远程过程的被调用端;调用一预设函数将所述远程过程对应的线程挂起,并等待所述被调用端返回的请求结果;在接收到所述请求结果时,将所述信号事件的状态变更为有信号状态,从而使得所述预设函数将所述远程过程对应的线程唤醒。

【技术特征摘要】
1.一种以同步方式进行远程过程调用的方法,其特征在于,包括:在调用远程过程时,创建与所述远程过程对应的信号事件,所述信号事件的初始状态为无信号状态;将调用所述远程过程所需的调用请求发送给所述远程过程的被调用端;调用一预设函数将所述远程过程对应的线程挂起,并等待所述被调用端返回的请求结果;在接收到所述请求结果时,将所述信号事件的状态变更为有信号状态,从而使得所述预设函数将所述远程过程对应的线程唤醒。2.如权利要求1所述的以同步方式进行远程过程调用的方法,其特征在于,所述创建与所述远程过程对应的信号事件,包括:调用CreateEvent函数创建与所述远程过程对应的信号事件;对所述信号事件分配唯一标识符,并将所述信号事件和所述唯一标识符存储在字典Dict中,所述唯一标识符与所述信号事件对应。3.如权利要求2所述的以同步方式进行远程过程调用的方法,其特征在于,所述将调用所述远程过程所需的调用请求发送给所述远程过程的被调用端,包括:与所述被调用端建立网络连接;将所述唯一标识符连同所述调用请求一起发给所述被调用端。4.如权利要求1所述的以同步方式进行远程过程调用的方法,其特征在于,所述调用一预设函数将所述远程过程对应的线程挂起,并等待所述被调用端返回的结果消息,包括:调用WaitForSingleObject函数将所述远程过程对应的线程挂起,并等待所述被调用端返回的结果消息。5.如权利要求2所述的以同步方式进行远程过程调用的方法,其特征在于,所述在接收到所述请求结果时,将所述信号事件的状态变更为有信号状态,包括:在接收到所述请求结果时,从所述请求结果中提取所述唯一标识符;基于所述唯一标识符,在所述字典Dict中查找所述信号事件;调用SetEvent函数将所述信号事件的状态变更为有信号状态。6.如权利要求1~5任一所述的以同步方式进行远程过程调用的方法,其特征在于,所述将所述远程过程对应的线程挂起,并等待所述被调用端返回的结果消息之后,还包括:检测与所述被调用端之间的网络连接是否断开;...

【专利技术属性】
技术研发人员:杨亮张文明陈少杰
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1