什么是团队领导

zer*_*ing 6 elixir

我正在尝试配置,什么是组长以及它与I/O模块的关系,但在互联网上找不到任何有用的东西.有人可以解释一下吗?

我有elixir 1.2书(Dave Thomas)的以下场景:
在此输入图像描述

在第二个窗口,他为什么通过:erlang_group_leader?它有什么好处?

Gre*_*reg 9

来自文档:

group_leader() -> pid()
Run Code Online (Sandbox Code Playgroud)

返回评估函数的进程的组长的进程标识符.

每个流程都是某个流程组的成员,所有组都有一个组长.该组中的所有I/O都被引导至组长.当产生新进程时,它将与产生进程获得相同的组长.最初,在系统启动时,init既是自己的组长,也是所有进程的组长.

和:

group_leader(GroupLeader, Pid) -> true
Run Code Online (Sandbox Code Playgroud)

类型:

GroupLeader = Pid = pid()
Run Code Online (Sandbox Code Playgroud)

将Pid的组长设置为GroupLeader.通常,当从某个shell启动的进程要有另一个组长而不是init时,会使用此方法.

See also group_leader/0.
Run Code Online (Sandbox Code Playgroud)

还有一些特定于Elixir的文档:

通过使用进程对IO设备建模,Erlang VM允许同一网络中的不同节点交换文件进程,以便在节点之间读/写文件.在所有IO设备中,每个流程都有一个特殊的:组长.

可以按流程配置组长,并在不同情况下使用.例如,当在远程终端中执行代码时,它保证远程节点中的消息被重定向并在触发请求的终端中打印.

  • 组长的主要任务是从其组中的所有进程收集I/O输出,并将该I/O传递给底层系统或从底层系统传递I/O. 基本上,小组负责人代表小组拥有stdin,stdout和stderr,并处理来往这些渠道的信息传递. (3认同)
  • 将组长视为代理,其他进程通过它执行 IO。因此,与其让一组开发人员都与会计部门交谈,不如任命一名组长为他们交谈(整理上次会议的费用),然后他们可以继续破解他们的代码。 (3认同)