在 Erlang 中作为进程生成的函数内部定义的函数
Posted
技术标签:
【中文标题】在 Erlang 中作为进程生成的函数内部定义的函数【英文标题】:Functions defined inside functions spawned as processes in Erlang 【发布时间】:2017-07-06 17:39:41 【问题描述】:在另一个函数(B)中定义的函数(B)是一个注册进程的函数(A)如何访问函数(B)的邮箱?
我可以在function(B)中定义多个函数吗?在该函数中定义了注册的进程,可以有receive子句来访问其他进程发送给function(B)的消息?
【问题讨论】:
【参考方案1】:在第二段中,您已经回答了第一段。您获取消息的方式(如果 A 和 B 在同一进程中)是通过 receive
子句。只要他们在同一个进程,就会访问同一个邮箱。
在function(B)
中,您当然可以使用任意数量的receive
子句进行任意数量的函数调用。现在,如果您希望它们具有相同的邮箱,它们将处于同一进程中,因此它们将按顺序执行。另请注意,“receive”子句会暂停执行,直到收到某些内容(或超时,如果已定义)。
所以在这个假设场景中,这些 许多 函数将一个接一个地执行,每个函数都会阻塞整个过程,直到收到某些内容(或达到超时,如果已定义)。然后继续。
【讨论】:
非常感谢,这真的让我明白了。以上是关于在 Erlang 中作为进程生成的函数内部定义的函数的主要内容,如果未能解决你的问题,请参考以下文章