我们说我有这个代码
var running = false;
var cluster = require('cluster');
if(cluster.isMaster){
cluster.fork();
running = true;
}
在我的每一个叉子中,运行是真还是假?
答案 0 :(得分:0)
您的叉子不是主人,所以我相信running
会false
,因为他们会跳过if
分支。
编辑:只是确定,但快速测试发现了这些结果:
var running = false;
var cluster = require('cluster');
if (cluster.isMaster) {
cluster.fork();
cluster.fork();
cluster.fork();
running = true;
}
console.log('Master?', cluster.isMaster);
console.log('Running?', running);
输出:
Master? true
Running? true
Master? false
Running? false
Master? false
Master? false
Running? false
Running? false
答案 1 :(得分:0)
以下是您的代码的扩展版本:
var cluster = require('cluster');
var cpus = require('os').cpus().length;
var running = false;
if (cluster.isMaster) {
for (var i = 0; i < cpus; i += 1) {
cluster.fork();
running = true;
}
}
console.log('running: '+ running);
这是结果:
running: true
running: false
running: false
running: false
running: false
在此示例中,第一行是主进程,其他四行是子进程。其中有四个,因为我的CPU有4个核心。根据运行代码的机器,这可以是1或8或其他任何内容。
您可以在此处找到有关Node.js群集的更多信息:https://nodejs.org/api/cluster.html