因此,我观看了多年前(2008年)的这段视频,其中Joe Armstrong解释了Erlang的背景。
video link
他提出了一个充分的理由,而我要问的是他在13:07说的话:



他继续探讨线程管理的问题,以及与语言和操作系统之间这种脱节的关系。然后,THEN继续说,由于这个原因,Erlang在利用多核技术方面处于独特的位置,也就是说,它可以“直接”管理核而完全不使用线程?抑或是对他的理解不正确,或者在过去的8年中出现了一种或多种新的语言来挑战Erlang?

非常感谢您提供的任何引用或意见,这可能有助于您解决此问题。

最佳答案

Erlang VM产生OS线程(默认情况下每个CPU内核一个),它们运行进程调度程序。 (VM还可以为IO操作,驱动程序和NIF生成更多线程,但它们不运行Erlang代码。)调度程序调度Erlang进程中代码的执行。与OS进程和OS线程相比,每个Erlang进程(可以而且应该)非常轻巧,并且彼此完全分开。它利用多核硬件实现了独特的应用程序设计,具有简单,安全,耐用和美观的特点。有关将Erlang进程映射到内核的更多信息,请参见my answer到其他问题。有关调度如何详细工作的详细说明,请参见Erlang Scheduler Details and Why It Matters博客。

07-24 09:37
查看更多