【发布时间】:2013-09-13 06:02:20
【问题描述】:
默认情况下 (go..) 将使用twice the number of cores + 42 线程作为线程池。有什么方法可以通过设置环境变量或其他方式来设置线程数或代码可以使用的 CPU 数?
在 linux 机器上,我可以使用 taskset 设置 CPU 数量,例如
taskset -c 0,1 my_Java_or_Clojure_program,虽然taskset 似乎对(-> (java.lang.Runtime/getRuntime) .availableProcessors) 返回的数字无效。
【问题讨论】:
-
core.async 的代码在哪里指定将使用“2+ 核心数”?我找了一些,但没有找到。
-
@David 从这里 martintrojer.github.io/clojure/2013/07/07/…
-
@David 从源代码来看,它看起来像是处理器数量加 42 的两倍,github.com/clojure/core.async/blob/master/src/main/clojure/…
标签: multithreading clojure cpu-usage core.async