node多進程

內容:node

1.多進程與多線程程序員

2.node中多進程相關模塊的使用服務器

 

 

 

1.多進程與多線程多線程

  • 多線程:性能高;複雜、考驗程序員
  • 多進程:性能略低;簡單、對程序員要求低

Node.js中默認:單進程、單線程,可是其能夠實現多進程性能

 

多進程分爲主進程和子進程:ui

  • 主進程 = 守護進程(派生子進程)
  • 子進程 = 工做進程
  • 通常用子進程來完成任務,主進程來監視子進程

 

進程-怪:spa

  • 普通程序不能「建立」進程,只有系統進程才能建立進程;只有主進程能分裂
  • 進程是分裂出來
  • 分裂出來的兩個進程執行的是同一套代碼
  • 父子進程之間能夠共享"句柄"

 

 

2.node中多進程相關模塊的使用線程

  • cluster:建立進程
  • process:獲取進程信息

多進程server實例:code

 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 }

注:server

這裏的子進程之間不是一個一個接着來工做的,這是由於進程調度的緣由 --->> 多個進程:第一個滿了 -> 才啓用第二個 -> 前兩個都滿了 -> 才啓用第三個

相關文章
相關標籤/搜索