多线程:性能高;复杂、考验程序员 多进程:安全、 性能略低;简单、对程序员要求低
Node.js默认:单进程、单线程 多进程
主进程:负责派生子进程 子进程:干活
进程-怪:
1.普通程序不能“创建”进程,只有系统进程才能创建进程;只有主进程能分裂
2.进程是分裂出来
3.分裂出来的两个进程执行的是同一套代码
4.父子进程之间可以共享"句柄"
主进程=守护进程
子进程=工作进程
多进程 cluster
const http=require('http');
const cluster=require('cluster');
const os=require('os'); //可以看到系统信息的模块
const process=require('process'); //此模块可以看到进程的信息
if(cluster.isMaster){
for(let i=0;i<os.cpus().length;i++){ // 有多少个cpu就开多少个进程
cluster.fork();
}
console.log('主进程');
}else{
let server=http.createServer((req, res)=>{ //子进程跑
console.log(process.pid);
res.write('aaaa');
res.end();
});
server.listen(8080);
console.log('服务器开好了,在8080上');
}
进程切换存在开销,所以他们的工作原理是第一个满了忙不过来了才会切换第二个来帮忙。
多个进程:
第一个满了 -> 启用第二个 -> 前两个都满了 -> 启用第三个
网友评论