Erlang并发和核心管理

Erlang concurrency and core management

本文关键字:管理 核心 并发 Erlang      更新时间:2023-10-16

所以我看了很多年前(2008年)的视频,乔·阿姆斯特朗(Joe Armstrong)在其中解释了埃尔兰(Erlang)的背景。视频链接他有一个很好的理由,我在问的是他在13:07说话时:

[erlang是一种同时语言;我的意思是 该语言是编程语言的一部分。他们不属于 到操作系统。这确实是语言的问题 像Java和C 一样,线程不在编程中 语言;线程是操作系统中的东西 他们继承了操作系统中的所有问题。之一 问题是内存管理系统的粒度...

他继续谈论线程管理的问题,以及该语言和操作系统之间的断开连接的关系。然后继续说,出于这个原因,Erlang是独特的位置来利用多核技术,即它可以"直接"直接"管理而无需使用线程吗?要么是理解他是错误的,或者可能在过去的8年中出现了一种或多种新语言,以挑战这个领域的Erlang?

非常感谢可能阐明此问题的任何参考文献或评论。

erlang vm spawns OS线程(默认为每个CPU核心),并且它们运行过程调度程序。(VM还可以为IO操作,驱动程序和NIFS产生更多线程,但它们不运行ERLANG代码。)调度程序计划在Erlang进程中安排代码执行。与操作系统过程和操作系统相比,每个ERLANG过程都是(可以是并且应该)非常轻巧,并且彼此完全分开。它允许使用多功能HW的独特设计,具有轻松,安全性,鲁棒性和优雅性。有关映射Erlang流程到核心的更多信息,请参阅我对其他问题的答案。有关详细说明的详细说明,请参见Erlang调度程序的详细信息及其为何重要的博客。