node多进程

内容:

1.多进程与多线程

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

1.多进程与多线程

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

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

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

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

进程-怪:

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

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

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

多进程server实例:

 1 const http=require('http');
 2 const cluster=require('cluster');
 3 const os=require('os');
 4 const process=require('process');
 5 
 6 if(cluster.isMaster){
 7     // 主进程:
 8     for(let i=0;i<os.cpus().length;i++){
 9         // 创建子进程:
10         cluster.fork();
11     }
12 
13     console.log('主进程');
14 }else{
15     // 子进程:
16     let server=http.createServer((req, res)=>{
17         // 打印当前执行的子进程的pid
18         console.log(process.pid);
19 
20         res.write('aaaa');
21         res.end();
22     });
23 
24     server.listen(8080);
25     console.log('服务器开好了,在8080上');
26 }

注:

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

猜你喜欢

转载自www.cnblogs.com/wyb666/p/9704056.html