Erlang中的模块和进程之间的关系是什么



我是Erlang的新手,试图了解Erlang中模块和进程之间的关系。在BEAM中,每个模块是否都启动了一个新流程?当我们从另一个模块调用函数时,两个进程之间是否进行了消息传递?

在处理现有的Erlang代码时,我试图通过Erlang文档进行搜索

函数在进程内部执行,无论它们是否在模块中定义。

是否每个模块都在BEAM中启动了一个新流程?

没有。您可以定义50个模块,其中的功能都可以在一个进程中执行。模块更像是名称空间。

当我们从另一个模块调用函数时,是否有消息传递是在两个过程之间完成的吗?

  1. 除非启动两个进程,否则没有两个进程。

  2. 进程之间的消息传递通过调用send/2或使用运算符!来完成。使用receive clause在进程内部读取消息。

最新更新