位置: 编程技术 - 正文

详解node单线程实现高并发原理与node异步I/O(node 多线程)

编辑:rootadmin

推荐整理分享详解node单线程实现高并发原理与node异步I/O(node 多线程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:nodejs单线程处理高并发,node单线程 高并发,node单线程异步,node单线程还是多线程,node单线程异步,node单线程还是多线程,node.js单线程,node单线程异步,内容如对您有帮助,希望把文章链接给更多的朋友!

一、node单线程实现高并发原理

众所周知nodejs是单线程且支持高并发的脚本语言。可为什么单线程的nodejs可以支持高并发呢?很多人都不明白其原理,下面我来谈谈我的理解:

1. node的优点:I/O密集型处理是node的强项,因为node的I/O请求都是异步的(如:sql查询请求、文件流操作操作请求、http请求...)

a. 什么是异步?

异步:发出操作指令,然后就可以去做别的事情了,所有操作完成后再执行回调

异步的实现原理: 

b. 什么是异步I/O?

异步I/O顾名思义就是异步的发出I/O请求

c. 虽然nodejs可以异步的发出I/O请求,但nodejs不支持多线程,为啥就可以支持高并发呢?

详解node单线程实现高并发原理与node异步I/O(node 多线程)

因为nodejs的I/O操作,底层是开启了多线程的

当同时有多个IO请求时,主线程会创建多个eio线程,以提高IO请求的处理速度    

额外知识点:

d. 虽然nodejs的I/O操作开启了多线程,但是所有线程都是基于主线程开启的只能跑在一个进程当中还是不能充分利用cpu资源

pm2进程管理器可以解决这个问题

pm2 是一个带有负载均衡功能的Node应用的进程管理器.

e. cpu核数与线程之间的关系

在过去单CPU时代,单任务在一个时间点只能执行单一程序。之后发展到多任务阶段,计算机能在同一时间点并行执行多任务或多进程。虽然并不是真正意义上的“同一时间点”,而是多个任务或进程共享一个CPU,并交由操作系统来完成多任务间对CPU的运行切换,以使得每个任务都有机会获得一定的时间片运行。而现在多核CPU的情况下,同一时间点可以执行多个任务,具体到这个任务在CPU哪个核上运行,这个就跟操作系统和CPU本身的设计相关了

2. node的缺点:不擅长cpu密集型的操作

a. 什么是cpu密集型操作(复杂的运算、图片的操作)

b. nodejs为什么不擅长cpu密集型操作

因为nodejs是单线程的

标签: node 多线程

本文链接地址:https://www.jiuchutong.com/biancheng/379524.html 转载请保留说明!

上一篇:Node调用Java的示例代码(node.js调用c)

下一篇:详解使用vscode+es6写nodejs服务端调试配置(地盘正针的详解使用)

  • 税局退回附加税账务处理办法
  • 税务师考试各科老师推荐
  • 递延所得税资产借贷方向
  • 企业所得税优惠政策最新2023小微企业
  • 收到员工归还借款属于现金流量表
  • 现金折扣怎么进账
  • 发票开具提示
  • 增值税设备抵扣怎么抵扣
  • 土地使用权出让和划拨有什么区别
  • 国税局公告2020年1号
  • 替票是什么和发票的区别
  • 净资产利润率多少算好
  • 有销项没有进项怎么结算成本
  • 成本费用总额包括信用减值损失吗
  • 小规模纳税人如何转一般纳税人
  • 六月工资七月发算不算压工资
  • 小规模纳税人可以退税吗?
  • 银行存款明细账怎么登记及范本
  • 调整增值税税率
  • macbook右上角
  • 企业所得税如何计算
  • pddpic是什么文件
  • 转出未交增值税会计科目
  • excel2019冻结
  • 应付债券的会计分录有哪些
  • 小规模与一般纳税人做账区别
  • 在数组指定位置添加数据
  • 纳税人性质是什么
  • 常见浏览器兼容软件
  • flutter项目怎么运行
  • node与nodejs
  • 《推荐一个好地方》图书馆
  • 小规模企业应交税费
  • 公司的日常费用包括哪些
  • 企业印花税怎么入账
  • 供应商发票多开了如何处理?
  • 为什么应交增值税要转入未交增值税
  • 增值税发票用完后如何领取新的
  • 个人独资企业的特点
  • 企业应付职工薪酬的会计核算毕业设计
  • 普通发票和增值税普通发票一样吗
  • 专用发票跨月退税怎么办
  • 房租收入如何缴纳增值税
  • 税务上可以先收现金吗
  • 退休人员基本养老金包括哪些
  • 银行利息 税
  • 客户付了订金后能退吗
  • 材料抵扣进项税额
  • 发票认证申报期是什么时候
  • 会计做账什么意思
  • 购入旧的固定资产还能一次性抵扣吗
  • 支付信息表
  • sql获取某个字符的位置
  • mysql8.0 json
  • windows2008 64位系统下MySQL 5.7绿色版的安装教程
  • win 2008
  • ubuntu x
  • 修改linux系统ip
  • linux用户权限管理
  • win7系统运行慢,如何提速
  • win8 更改电脑设置
  • rdclient怎么用win10怎么设置
  • linux 查找语句
  • 自动切换桌面
  • windows补丁kb3033929
  • win7系统网速太慢怎么办
  • python中的json
  • javascript ts
  • Python分析学校四六级过关情况
  • python添加图片
  • jquery.min.js源代码
  • 使用nodejs开发后端
  • unity5用什么语言
  • js基于什么
  • flask框架官方文档
  • 税务局网上申请开票
  • 个税申报表明细怎么打印
  • 山西省地方税务局通用定额发票
  • epc项目不接受联合体投标违规吗
  • 发票上纳税人识别号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设