我正在尝试配置,什么是组长以及它与I / O模块的关系,但在互联网上找不到任何有用的东西。有人可以解释一下吗?
我有以下情形来自elixir 1.2书(Dave Thomas):
在第二个窗口,他为什么通过:erlang_group_leader
?它有什么好处?
答案 0 :(得分:9)
here:
group_leader(GroupLeader, Pid) -> true
返回评估函数的进程的组长的进程标识符。
每个流程都是某个流程组的成员,所有群组都有一个群组负责人。该组中的所有I / O都被引导至组长。当产生新进程时,它将与产生进程获得相同的组长。最初,在系统启动时,init既是自己的组长,又是所有进程的组长。
和
GroupLeader = Pid = pid()
类型:
See also group_leader/0.
将Pid的组长设置为GroupLeader。通常,当从某个shell启动的进程要有另一个组长而不是init时,会使用此方法。
{{1}}
还有一些From documentation:
通过使用进程对IO设备建模,Erlang VM允许同一网络中的不同节点交换文件进程,以便在节点之间读/写文件。在所有IO设备中,每个流程都有一个特殊的:组长。
可以按流程配置组长,并在不同情况下使用。例如,在远程终端中执行代码时,它可以保证远程节点中的消息被重定向并在触发请求的终端中打印。