![](/img/trans.png)
[英]erlang, what's difference between 'catch 1=0' and '(catch 1=0)'?
[英]In Elixir, what's the difference between a node and a process?
这个问题也被标记为“ Erlang”,因为这些Elixir模块或多或少只是包装了Erlang功能。
节点看起来像命名进程。 他们可以同时执行功能,链接到其他节点,并像流程监督者一样工作。 每个模块中的许多功能似乎都相同,从而增强了相似性。
节点模块的价值是什么? 它提供了流程不提供的功能吗?
节点看起来像命名进程。
看来您误解了节点是什么。 节点是作为一个操作系统进程运行的Erlang VM的实例。 Erlang进程是一个执行代码的单元,类似于操作系统线程,但较轻。 Erlang进程在Erlang节点上运行,就像操作系统进程在操作系统上运行一样。 没有Erlang节点,Erlang进程将无法运行。
这是两个不同的概念。 节点是Erlang虚拟机的实例,进程是在虚拟机内部运行的非常轻量级的线程。
根据文档 ,这是Elixir流程的定义:
在Elixir中,所有代码都在进程内部运行。 进程彼此隔离,并发运行,并通过消息传递进行通信。 流程不仅是Elixir中并发的基础,而且它们还提供了构建分布式和容错程序的方法。
Elixir的进程不应与操作系统进程混淆。 Elixir中的进程在内存和CPU方面极其轻巧(与许多其他编程语言中的线程不同)。
节点是Erlang虚拟机的表示。 这是节点模块的一些功能示例:
活?()
如果本地节点处于活动状态,则返回true
连接(节点)
建立与节点的连接
断开连接(节点)
强制断开节点的连接
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.