学 Golang 看到了一段代码,是通过协程与死循环将整个 CPU 跑满:
package main import ( "runtime" ) func main() { runtime.GOMAXPROCS(runtime.NumCPU()) for i := 0; i < runtime.NumCPU(); i++ { go func() { for { } }() } for { } }
然后想到了 Node,如法炮制后发现 CPU 就没啥动静(估计是引擎的优化)。
那么问题来了
如何通过一段简短的 Node 代码跑满CPU(单核可以,所有核都满载最好)
同时也想在此搜集一下各大主流语言以最简短方式跑满 CPU 的实现代码,非常感谢各位大神(✪ω✪)
三叔2016-11-04 10:58:35
var cluster = require('cluster'); var CPUs = require('os').cpus().length; if (cluster.isMaster) { for (var i = 0; i < CPUs; i++) { cluster.fork(); } } else { while (true) { /* ... */ } }