示例为什么会进入else?我执行的结果是无法进入else 的
来源:7-5 单线程多进程模型 事件循环及进程通信

我是传奇1122
2018-09-17
if (cluster.isMaster) 是一个判断,代码第一次执行到这里时为true,然后执行函数 masterProcess(), 为什么会进入else呢?
写回答
1回答
-
const cluster = require('cluster') const cpus = require('os').cpus() let workers = [] const masterProcess = () => { console.log(`一共有 ${cpus.length} 个核`) console.log(`Master 主进程 ${process.pid} 启动`) for (let i = 0; i < cpus.length; i++) { console.log(`正在 Fork 子进程 ${i}`) const worker = cluster.fork() workers.push(worker) worker.on('message', message => { console.log(`主进程 ${process.pid} 收到 '${JSON.stringify(message)}' 来自 ${worker.process.pid}`) }) } workers.forEach(worker => { console.log(`主进程 ${process.pid} 发消息给子进程 ${worker.process.pid}`) worker.send({msg: `来自主进程的消息 ${process.pid}`}) }, this) } const childProcess = () => { console.log(`Worker 子进程 ${process.pid} 启动`) process.on('message', message => { console.log(`Worker 子进程 ${process.pid} 收到消息 '${JSON.stringify(message)}'`) }) console.log(`Worker 子进程 ${process.pid} 发消息给主进程`) process.send({msg: `来自子进程的消息 ${process.pid}`}) } if (cluster.isMaster) { masterProcess() console.log(111) } else { console.log(222) childProcess() }
检查下代码有没有问题哈,这里第一次是 master 主进程启动,后面就是多少核,就启动多少子进程了
112018-09-27
相似问题