0

我正在尝试了解 BEAM VM 的工作原理,所以我有一个问题。当一个人在 erlang 中生成一个进程时,结果是一个 PID。这是否意味着一个进程被挂起,直到产生请求的进程?

4

2 回答 2

1

我试图了解 BEAM VM 的工作原理。

详细信息在免费书籍“The Beam Book”中。

这是否意味着一个进程被挂起,直到产生请求的进程?

这取决于。

Erlang 是一种并发语言。当我们说进程并发运行时,我们的意思是对于外部观察者来说,它看起来像是两个进程同时执行。

在单核系统中,这是通过抢占式多任务处理来实现的。这意味着一个进程会运行一段时间,然后虚拟机的调度程序会挂起它,让另一个进程运行。

在多核或分布式系统中,我们可以实现真正的并行性,即两个或多个进程实际上同时执行。在启用 SMP 的模拟器中,系统使用多个 OS 线程通过每个线程运行一个调度程序和模拟器来间接执行 Erlang 进程。在使用 ERTS 默认设置的系统中,每个启用的核心(物理或超线程)将有一个线程。

于 2019-10-02T21:24:02.447 回答
0

没有这些过程是相互独立的。这是二郎文档

于 2019-10-02T21:11:10.677 回答