加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

深入理解Node.js 进程与线程(8000字长文彻底搞懂)

发布时间:2019-08-20 03:46:39 所属栏目:建站 来源:koala
导读:前言 进程与线程是一个程序员的必知概念,面试经常被问及,但是一些文章内容只是讲讲理论知识,可能一些小伙伴并没有真的理解,在实际开发中应用也比较少。本篇文章除了介绍概念,通过Node.js 的角度讲解进程与线程,并且讲解一些在项目中的实战的应用,让

worker.js 子进程处理逻辑如下:

  • 创建一个 server 对象,注意这里最开始并没有监听 3000 端口
  • 通过 message 事件接收主进程 send 方法发送的消息
  • 监听 uncaughtException 事件,捕获未处理的异常,发送自杀信息由主进程重建进程,子进程在链接关闭之后退出
  1. // worker.js 
  2. const http = require('http'); 
  3. const server = http.createServer((req, res) => { 
  4.     res.writeHead(200, { 
  5.         'Content-Type': 'text/plan' 
  6.     }); 
  7.     res.end('I am worker, pid: ' + process.pid + ', ppid: ' + process.ppid); 
  8.     throw new Error('worker process exception!'); // 测试异常进程退出、重启 
  9. }); 
  10.  
  11. let worker; 
  12. process.title = 'node-worker' 
  13. process.on('message', function (message, sendHandle) { 
  14.     if (message === 'server') { 
  15.         worker = sendHandle; 
  16.         worker.on('connection', function(socket) { 
  17.             server.emit('connection', socket); 
  18.         }); 
  19.     } 
  20. }); 
  21.  
  22. process.on('uncaughtException', function (err) { 
  23.     console.log(err); 
  24.     process.send({act: 'suicide'}); 
  25.     worker.close(function () { 
  26.         process.exit(1); 
  27.     }) 
  28. }) 

Node.js 进程守护

什么是进程守护?

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读