【发布时间】:2011-04-09 11:51:45
【问题描述】:
我已经开始研究 Erlang 并发现 BEAM 运行时环境很吸引人。通常说在 Erlang 中,进程属于语言而不是操作系统(意思是运行时,在这种情况下是 BEAM)。这些是 Erlang 出名的轻量级“绿色流程”。它进一步说明(在this paper 的第 5 页上)BEAM 每个 CPU 内核使用一 (1) 个 OS 线程进行调度,另一个 OS 线程用于 i/o。所以我想知道:实际执行 Erlang 代码所需的 CPU 周期来自哪个线程?
此外,如果我在双核机器上运行,根据我目前所读到的内容,我希望看到三 (3) 个线程在 BEAM 进程下运行:两个调度程序(每个调度程序一个核心)和一个 i/o 线程。但我看到 10。有时是 11。有时它从 13 开始,像高质量放大器一样,到 11。
我很困惑。任何见解将不胜感激。
【问题讨论】:
标签: multithreading erlang beam