当人们调用“ spawn”函数时会发生什么?

时间:2019-10-02 20:54:54

标签: erlang beam

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

2 个答案:

答案 0 :(得分:1)

  

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

详细信息在免费书"The Beam Book"中。

  

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

要视情况而定。

  

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

     

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

     

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

答案 1 :(得分:0)

没有进程是相互独立的。这是erlang docs