const cluster = require('cluster')
const http = require('http')
//获取CPU 内核的数量。
const numCPUs = require('os').cpus().length
//如果进程cluster是主进程
if(cluster.isMaster) {
console.log(`主进程${process.pid}正在运行`)
//衍生出一个新的工作进程。这只能通过主进程调用
for(let i = 0; i < numCPUs; i++) {
cluster.fork()
}
//当任何一个工作进程关闭的时候,cluster 模块都将会触发 'exit' 事件。
cluster.on('exit', (worker, code, signal) => {
console.log(`工作进程${worker.process.pid}已退出`)
})
}else {
http.createServer((req, res) => {
res.writeHead(200)
res.end('你好世界\n')
}).listen(8000)
console.log(`工作进程${process.pid}已启动`)
}
image.png
网友评论