我是Erlang的新手,我想了解Erlang中模块和进程之间的关系。在BEAM中每个模块都有一个新的进程吗?当我们从另一个模块调用一个函数时,两个进程之间是否有消息传递?我在处理现有的Erlang代码时尝试搜索Erlang文档
pod7payv1#
函数在进程内部执行,无论它们是否在模块中定义。BEAM中的每个模块都启动了一个新的进程吗?不需要。你可以定义50个模块,其中的函数可以在一个进程中执行。模块更像是名称空间。当我们从另一个模块调用一个函数时,两个进程之间是否有消息传递?1.如果你不启动两个过程,就不会有两个过程。1.进程之间的消息传递通过调用send/2或使用操作符!来完成。消息在进程内部使用receive clause来读取。
send/2
!
receive clause
1条答案
按热度按时间pod7payv1#
函数在进程内部执行,无论它们是否在模块中定义。
BEAM中的每个模块都启动了一个新的进程吗?
不需要。你可以定义50个模块,其中的函数可以在一个进程中执行。模块更像是名称空间。
当我们从另一个模块调用一个函数时,两个进程之间是否有消息传递?
1.如果你不启动两个过程,就不会有两个过程。
1.进程之间的消息传递通过调用
send/2
或使用操作符!
来完成。消息在进程内部使用receive clause
来读取。