node多进程
2024-10-12 03:13:39
内容:
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上');
}
注:
这里的子进程之间不是一个一个接着来工作的,这是因为进程调度的原因 --->> 多个进程:第一个满了 -> 才启用第二个 -> 前两个都满了 -> 才启用第三个
最新文章
- nodejs进阶(2)—函数模块调用
- Codevs 1860 最大数 string大法好,STL万岁。。
- confluence的安装、备份和恢复(wiki)
- jQuery的XX如何实现?——1.框架
- iOS7中都Bar的透明问题
- JavaScript 关于变量作用域的一道面试题
- leetcode -- Largest Rectangle in Histogram TODO O(N)
- HDU - 5036 Explosion
- HT for Web嵌入QtWebKit的client解决方式
- #Windows Phone:在HTML5专案中,如何从Javascript传送字串到C#的APP端
- Spring读取xml配置文件的原理与实现
- 通过java读取excle数据的方法,今天用到了留下来供以后参考使用
- GIL全局解释器锁+GIL全局解释器锁vs互斥锁+定时器+线程queue+进程池与线程池(同步与异步)
- SpringBoot 热启动
- javascript实现OOP编程
- UVALive 6908 Electric Bike dp
- dubbo用途介绍
- FastReport.Net使用:[20]条码控件使用
- python UI自动化实战记录九:添加日志
- java基础讲解07-----数组