20、远程过程调用(RPC)与图形用户界面(GUI)开发

RPC与Perl/Tk GUI开发详解

远程过程调用(RPC)与图形用户界面(GUI)开发

1. 远程过程调用(RPC)概述

远程过程调用(RPC)的核心思想是在另一个进程空间中透明地调用子程序,使其表现得就像在本地进程中调用一样。在调用普通子程序时,我们通常认为理所当然的一些特性,RPC 模块也都考虑到了,具体如下:
| 特性 | 说明 |
| ---- | ---- |
| 同步性 | 调用者会等待被调用的过程完成。RPC 模块通过调用 Msg::send_now Msg::rcv_now 来实现这种阻塞行为。 |
| 参数 | Perl 子程序可以接受任意数量、任意类型的参数。RPC 模块使用 FreezeThaw 模块来编组参数,将所有参数扁平化并编码为单个字符串(冻结),在另一端恢复(解冻)。不过, FreezeThaw 不处理代码引用。 |
| 上下文 | 子程序可以使用 wantarray 来确定调用者是指定列表上下文还是标量上下文。RPC 模块确保了这种上下文的透明性。此外,调用者的包也是上下文的一部分。 |
| 异常 | 子程序可以调用 die ,并期望其调用者捕获它。RPC 的接收端在 eval 中调用目标子程序,如果发生异常,会将错误消息发送回调用进程。 |
| 相互递归 | 子程序 A 可以调用子程序 B,而 B 又可以调用 A,即相互递归。RPC 支持这种情况,因为它可以在发送消息阻塞时处理传入的消息。 |
| 无死锁 | 传统的 RPC 系统

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值