node多进程

内容:

1.多进程与多线程

2.node中多进程相关模块的使用

1.多进程与多线程

  • 多线程:性能高;复杂、考验程序员
  • 多进程:性能略低;简单、对程序员要求低

Node.js中默认:单进程、单线程,但是其可以实现多进程

多进程分为主进程和子进程:

  • 主进程 = 守护进程(派生子进程)
  • 子进程 = 工作进程
  • 一般用子进程来完成任务,主进程来监视子进程

进程-怪:

  • 普通程序不能“创建”进程,只有系统进程才能创建进程;只有主进程能分裂
  • 进程是分裂出来
  • 分裂出来的两个进程执行的是同一套代码
  • 父子进程之间可以共享"句柄"

2.node中多进程相关模块的使用

  • cluster:创建进程
  • process:获取进程信息

多进程server实例:

 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++){
// 创建子进程:
cluster.fork();
} console.log('主进程');
}else{
// 子进程:
let server=http.createServer((req, res)=>{
// 打印当前执行的子进程的pid
console.log(process.pid); res.write('aaaa');
res.end();
}); server.listen(8080);
console.log('服务器开好了,在8080上');
}

注:

这里的子进程之间不是一个一个接着来工作的,这是因为进程调度的原因 --->> 多个进程:第一个满了 -> 才启用第二个 -> 前两个都满了 -> 才启用第三个

上一篇:jquery鼠标放上去显示悬浮层即弹出定位的div层


下一篇:poj2184 Cow Exhibition(背包)