我试图了解BEAM VM的工作原理,所以我有问题。当一个人在 erlang 中生成一个进程时,结果是一个 PID。这是否意味着在生成请求的进程之前,进程将挂起?
我试图了解 BEAM VM 的工作原理。
详情在免费书"光束书"中。
这是否意味着进程被挂起,直到请求的进程 产生?
这要看情况。
Erlang 是一种并行语言。当我们说进程运行时 同时,我们的意思是,对于外部观察者来说,它看起来像两个 进程同时执行。
在单核系统中,这是通过抢占式多任务处理来实现的。 这意味着一个进程将运行一段时间,然后 虚拟机的调度程序将挂起它并让另一个 进程运行。
在多核或分布式系统中,我们可以实现真正的 并行性,即两个或多个进程实际在 完全相同的时间。在启用 SMP 的模拟器中,系统使用多个操作系统 线程通过运行一个线程间接执行 Erlang 进程 每个线程的计划程序和模拟器。在使用默认值的系统中 ERTS 的设置 每个启用的内核将有一个线程(物理 或超线程(。
否,这些进程彼此独立。以下是 erlang 文档