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