我试图了解BEAM VM的工作原理,所以我有一个问题。当以erlang生成一个进程时,结果是PID。这是否意味着在产生请求的进程之前,该进程将被挂起?
答案 0 :(得分:1)
我试图了解BEAM VM的工作原理。
详细信息在免费书"The Beam Book"中。
这是否意味着一个进程被挂起,直到请求的进程被挂起 产生了吗?
要视情况而定。
Erlang是一种并发语言。当我们说流程在运行 同时,我们的意思是对于外部观察者来说,它看起来像两个 进程正在同时执行。
在单核系统中,这是通过抢先式多任务处理来实现的。 这意味着一个进程将运行一段时间,然后 虚拟机的调度程序将挂起它,并让另一个 流程运行。
在多核或分布式系统中,我们可以实现真正的 并行性,即两个或多个实际在 完全相同的时间。在启用了SMP的仿真器中,系统使用多个OS 通过运行一个线程间接执行Erlang进程的线程 每个线程的调度程序和仿真器。在使用默认值的系统中 ERTS的设置,每个启用的核心(物理 或超线程)。
答案 1 :(得分:0)
没有进程是相互独立的。这是erlang docs