相关疑难解决方法(0)

OTP - 同步和异步消息传递

免责声明:erlang新手.

最初吸引我到erlang的一件事是演员模型; 不同进程同时运行并通过异步消息进行交互的想法.

我刚刚开始考虑OTP,特别是看gen_server.我见过的所有示例 - 并且授予它们是教程类型示例 - 使用handle_call()而不是handle_cast()实现模块行为.

我觉得有点混乱.据我所知,handle_call是一个同步操作:调用者被阻塞,直到被调用者完成并返回.这似乎与异步消息传递哲学背道而驰.

我即将开始一个新的OTP应用程序.这似乎是一个基本的架构决策,所以我想在开始之前确定我理解.

具体来说,我的问题是:

  1. 在实际操作中,人们倾向于使用handle_call而不是handle_cast吗?
  2. 如果是这样,当多个客户端可以调用相同的进程/模块时,可扩展性的影响是什么?

谢谢.

erlang

16
推荐指数
2
解决办法
6273
查看次数

标签 统计

erlang ×1