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

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

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

远程过程调用(RPC)的核心思想是在另一个进程空间中透明地调用子程序,使其表现得就像在本地进程中调用一样。RPC 模块在设计时考虑了以下几个普通子程序调用时的特性:
- 同步性 :调用者会等待被调用的过程完成。RPC 模块通过调用 Msg::send_now Msg::rcv_now 来实现这种阻塞行为。
- 参数处理 :Perl 子程序可以接受任意数量和类型的参数。RPC 模块使用 FreezeThaw 模块来处理参数,将所有参数扁平化并编码为一个字符串(冻结),在接收端再恢复(解冻)。不过, FreezeThaw 和 RPC 目前不支持代码引用。
- 上下文处理 :子程序可以使用 wantarray 来判断调用者指定的是列表还是标量上下文,RPC 模块确保这种上下文的透明性。此外,调用者的包信息也会被正确处理。
- 异常处理 :子程序可以调用 die 抛出异常,RPC 的接收端会在 eval 中调用目标子程序,如果发生异常,会将错误信息发送回调用进程。
- 相互递归 :子程序 A 可以调用子程序 B,而 B 又可以调用 A,RPC 支持这种相互递归,因为它可以在发送消息阻塞时处理传入的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值