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上');
}
注:
这里的子进程之间不是一个一个接着来工作的,这是因为进程调度的原因 --->> 多个进程:第一个满了 -> 才启用第二个 -> 前两个都满了 -> 才启用第三个
node多进程的更多相关文章
- node多进程的创建与守护
node是单线程运行,我们的node项目如何利用多核CPU的资源,同时提高node服务的稳定性呢? 1. node的单线程 进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系 ...
- Node 多进程并发控制小模块 - lockman
介绍 lockman 是一个用于多进程的并发控制锁, 类似一些语言中(比如 C#)的 lock 关键字可以用来确保代码块完成运行,而不会被其他进程中断.它可以把一段代码定义为互斥段(critical ...
- Node多进程相关
现状: 目前使用child_process.fork实现多进程,一个center.js负责任务分配及相关状态管理,一个worker.js负责任务执行. center.js结构: 1) 一个task_q ...
- node 适合 5000 人同时在线左右的 游戏开发
游戏开发性能的一些讨论 上面这个问题是在游戏上线前的一个性能顾虑 (但他确实是node多进程通讯间的一个比较麻烦的问题,数据一大就会出现性能上的瓶颈) 我们项目(手游)已经上线了,单服最高同时在线4. ...
- pm2日志记录和日志分割
pm2日志记录和日志分割 pm2介绍 pm2是nodejs进程管理工具,现在基本是node生产服务器的标准选择,可以帮助我们实现node多进程服务,开启的多个实例自动实现负载均衡. 最重要的是保证no ...
- nodeJS菜鸟教程笔记
http模块 var http = require('http'); // 引入http模块 var url = require('url'); // 引入url模块 var querystring ...
- 6到8个月如何达到三年加得前端经验,对标P7,“慕课网 Java工程师2020”
百度网盘链接:https://pan.baidu.com/s/1xshLRO3ru0LAsQQ0pE67Qg 提取码:bh9f 阶段一:课程设计及前端创建脚手架开发 第1周 需求分析和架构设计 ...
- 业务网关之AK中心建设
啥是AK AK(Access Key)是一种身份证明,它解决了"资源的使用者是谁"这个问题,比如在生活中,身份证可以证明你是你,而在云计算或程序中,AK能证明你是这个应用的拥有者. ...
- babeljs源码
babel.min.js!function(e,t){"object"==typeof exports&&"object"==typeof mo ...
随机推荐
- BZOJ4481: [Jsoi2015]非诚勿扰【概率期望+树状数组】
Description [故事背景] JYY赶上了互联网创业的大潮,为非常勿扰开发了最新的手机App实现单身 大龄青年之间的"速配".然而随着用户数量的增长,JYY发现现有速配的算 ...
- POJ 2312:Battle City(BFS)
Battle City Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9885 Accepted: 3285 Descr ...
- 51Nod - 1001:数组中和等于K的数对
基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K的数对.例如K = 8,数组A: ...
- linux内核空间和用户空间详解
linux驱动程序一般工作在内核空间,但也可以工作在用户空间.下面我们将详细解析,什么是内核空间,什么是用户空间,以及如何判断他们.Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Li ...
- shell学习笔记汇总
1.shell脚本中函数使用 函数定义在前,调用在后,顺序反了就没有效果了.函数调用为:函数名 参数列表 函数内部通过以下变量访问函数的参数:shell脚本函数中: $0: 这个脚本的名字 $n: 这 ...
- Linux挂载命令
版权声明:本文为"bcoder编程网"原创文章.原文地址:http://www.bcoder.cn,欢迎訪问! https://blog.csdn.net/wang7396/art ...
- hadoop yarn 知识点
yarn 简介: Yarn是一个分布式的资源管理系统,用以提高分布式的集群环境下的资源利用率,这些资源包括内存.IO.网络.磁盘等.其产生的原因是为了解决原MapReduce框架的不足.最初MapRe ...
- cookie 知识点
cookie失效是由浏览器实现的,根据时间来控制,服务器端并不做cookie是否失效的验证. 某个cookie失效了浏览器发送请求时便不会带上它,服务器端自然就没有这个cookie了,所以对于服务器来 ...
- 【jmeter】jMeter使用Badboy录制Web测试脚本
JMeter 是纯Java编写的软件功能和性.能测试工具,其录制脚本过于笨拙和复杂.而Badboy是用C++开发的动态应用测试工具,其拥有强大的屏幕录制和回放 功能,同时提供图形结果分析功能,刚好弥补 ...
- qt书籍推荐
<Qt Creator快速入门> 网友霍亚飞写的,他可算是Qt达人吧.这本书写得通俗易懂.与之配套的还有一个叫<Qt及Qt Quick开发实战精解>,属小项目实战,在入门的基础 ...