Erlang进程如何绑定到特定的调度程序?
答案 0 :(得分:2)
当前进程不会绑定到特定的调度程序(尽管您可以通过非文件功能强制它,不推荐)。可以使用cpu拓扑和绑定类型将调度程序线程绑定到逻辑处理器。 vm确实使用了一些这样的信息来提高其正常调度方案的性能。
答案 1 :(得分:1)
从an old mail from Kenneth Lundin阅读:
没有SMP支持的Erlang VM有1个调度程序在其中运行 主进程线程。调度程序选择可运行的Erlang进程 来自运行队列的IO和作业,无需锁定数据 结构,因为只有一个线程访问它们。
支持SMP的Erlang VM可以有1到多个调度程序 每个运行1个线程。调度程序选择可运行的Erlang进程 来自一个公共运行队列的IO和作业。在SMP VM中所有共享数据 结构受锁保护,运行队列就是一个例子 受锁保护的数据结构。
从OTP R12B开始,VM的SMP版本自动启动为 默认情况下,如果操作系统报告的CPU(或核心)超过1个且具有相同的CPU 调度程序的数量为CPU或核心。
不确定这是否回答了您的问题。你能扩展一点吗?