gpt4 book ai didi

Erlang分布式消息发送——元组中的第一个原子是什么意思?

转载 作者:行者123 更新时间:2023-12-04 17:11:09 25 4
gpt4 key购买 nike

Erlang User's Guide描述了 send operator作为

8.9 Send

Expr1 ! Expr2

Sends the value of Expr2 as a message to the process specified by Expr1. The value of Expr2 is also the return value of the expression.

Expr1 must evaluate to a pid, a registered name (atom), or a tuple {Name,Node}. Name is an atom and Node is a node name, also an atom.

  • If Expr1 evaluates to a name, but this name is not registered, a badarg run-time error occurs.
  • Sending a message to a pid never fails, even if the pid identifies a non-existing process.
  • Distributed message sending, that is, if Expr1 evaluates to a tuple {Name,Node} (or a pid located at another node), also never fails.


在分布式消息发送的情况下,我不清楚 {Name,Node}中的第一个原子代表什么来自远程节点或进程的代码。

感谢您的帮助。

最佳答案

您引用的句子中的语法有点模棱两可。这三个选项是:

  • 进程 ID,它是从某些 Erlang 函数返回的不透明数据类型,主要是 spawn 和 spawn_link。
  • 在本地节点(即本地 VM)上注册的名称。需要这样做的一个示例是长时间运行的服务器应用程序,您希望进程能够与关键实用程序服务(例如 DNS 缓存)进行通信。
  • 一个包含注册名称和它所在节点名称的元组(如果是另一个虚拟机,可能在不同的主机上)。

  • 第一种是迄今为止最常见的。注册名称旨在谨慎使用。

    我建议从 Learn You Some Erlang 中的并发章节开始,并根据需要回溯到前面的章节:
    http://learnyousomeerlang.com/the-hitchhikers-guide-to-concurrency#dont-panic

    关于Erlang分布式消息发送——元组中的第一个原子是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13021589/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com