【发布时间】:2011-10-10 04:22:29
【问题描述】:
Erlang 进程如何绑定到特定的调度程序?
【问题讨论】:
-
您能再扩大一点吗?我不确定你在问什么。
-
stackoverflow.com/questions/605183/… - 这个答案实际上可能会回答你的问题。至于将进程绑定到特定的调度程序,AFAIK 在 Erlang VM ATM 中是不可能的。
标签: erlang
Erlang 进程如何绑定到特定的调度程序?
【问题讨论】:
标签: erlang
当前进程没有绑定到特定的调度程序(尽管您可以通过 undocumentet 函数强制它,不推荐)。调度程序线程可以使用 cpu 拓扑和绑定类型绑定到逻辑处理器。 vm 确实使用其中一些信息来提高其正常调度方案的性能。
【讨论】:
读自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 版本会自动启动为 如果操作系统报告超过 1 个 CPU(或核心)并且具有相同的 CPU 或核心的调度程序数量。
不确定这是否能回答您的问题。可以再扩展一点吗?
【讨论】: