【问题标题】:Difference between elixir OTP processes and Operating system processesElixir OTP 进程和操作系统进程之间的区别
【发布时间】:2018-05-12 19:38:29
【问题描述】:

我想知道,elixir OTP 进程和普通操作系统进程有什么区别,比如说Linux。有人可以对此有所了解吗?研究后我还是一头雾水。

【问题讨论】:

  • 我不知道您是如何找不到有关它的信息的,但我可以推荐的一件事是您可以在此处找到的梁书 -> github.com/happi/theBeamBook
  • 他们只共享名字。无论如何,它们是完全不同的东西。
  • 另见this questionthis question,它们将Elixir/Erlang 进程与操作系统线程进行比较。 (我想说操作系统进程更类似于操作系统线程,而不是 Elixir/Erlang 进程。)
  • 问他们有什么共同点比问有什么不同更容易。他们的共同点就是名字——就是这样。

标签: elixir erlang-otp


【解决方案1】:

操作系统进程和 OTP 进程仅共享名称。无论如何,它们是完全不同的东西。这是一种误导,但事实就是如此。

来自Elixir’s guide,位于 Elixir 的主页(从主页单击 1 次):

Elixir 的进程不应与操作系统进程混淆。 Elixir 中的进程在内存和 CPU 方面非常轻量级(与许多其他编程语言中的线程不同)。因此,同时运行数万甚至数十万个进程的情况并不少见。

有关 Elixir 流程的更多信息,请参阅链接页面。

【讨论】:

  • 您认为这清楚地解释了为什么 elixir 流程不同?虽然,它们在内存和 CPU 方面是轻量级的,但是,如何?是内存分配方式还是每个进程的堆栈?
  • 无法清楚地解释为什么苹果与桌子不同。他们没有任何共同之处。 Elixir 进程是 ErlangVM 运行不同部分代码的隔离环境。这里的空白太窄,无法详细描述 Erlang 虚拟机的工作原理。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-31
  • 1970-01-01
  • 2016-10-31
  • 2016-06-13
  • 1970-01-01
相关资源
最近更新 更多