【问题标题】:How does Erlang implement concurrency without the use of OS threads?Erlang 如何在不使用 OS 线程的情况下实现并发?
【发布时间】:2016-12-06 18:24:17
【问题描述】:

如果 Erlang 自己创建和调度进程,而不使用 OS 线程,它如何利用多个 CPU 内核?我有限的理解是操作系统将 CPU 内核分配给操作系统线程。

【问题讨论】:

    标签: multithreading concurrency erlang


    【解决方案1】:

    Erlang 在名为 BEAM 的虚拟机上运行。

    Erlang 进程在每个内核上运行一个单独的 BEAM VM(使用操作系统线程)。

    看到这个related SO question

    【讨论】:

    • 谢谢。我的低声誉不允许我对您的回复做出评价。
    • 实际上这不太对,它运行 1 个 BEAM VM,每个 CPU 都有一个 OS 线程。这样,如果需要,Beam 可以在 CPU 之间移动进程
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-31
    相关资源
    最近更新 更多