位置: 编程技术 - 正文

详解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服务端调试配置(地盘正针的详解使用)

  • 虚开增值税如何获利
  • 财税通财务软件如何调整凭证间距
  • 税务师的含金量怎么样
  • 卖出看跌期权的损益图
  • 公司两年账没做
  • 新准则下怎么调整长期股权投资损益调整
  • 总分机构如何纳税
  • 企业所得税和增值税都要交吗
  • 税务局扣税余额不足
  • 被开除了怎么办理手续
  • 服务费公司的账务处理
  • 固定资产赔偿制度
  • 单次劳务费税率
  • 企业将现金借给员工
  • 开票资料填写
  • 建筑服务可以差额征收吗
  • 金蝶财务软件录入凭证
  • 购入资产当月开始计提折旧
  • 一般纳税人税负率
  • 建安行业简易计税可以抵扣吗
  • 采用支票结算方式的基本业务处理程序
  • 库存商品换货的会计分录
  • 法院收到诉讼费多久可以收到传票
  • 收到其他公司退款
  • 呆账催讨原则是谁提出的
  • 所得税年报期间费用明细表
  • 大沙丘国家公园在哪里
  • qclean.exe - qclean是什么进程 有什么用
  • 加班车费报销计入什么科目
  • 年终结算增值税怎么算
  • nerosmartstart.exe - nerosmartstart是什么进程 作用是什么
  • 房产前期开发
  • accubattery准确性
  • 前端等比例缩放
  • 进口货物没有发票怎么入账,报税时怎么填
  • 销售费用的主要类型有哪些
  • 年报企业所得税的分录怎么做
  • php判断https
  • 织梦安装详细教程
  • 委托加工业务的组成计税价格
  • 个税算错怎么办理退税
  • 建筑公司增值税专用发票税率是多少
  • 货运代理费计入什么科目
  • 出差补贴要不要发票呢?
  • mongodb mysql配合使用
  • 计提所得税后再结转本年利润吗
  • 建筑业挂靠企业所得税如何收取?
  • 发票收款人和复核人可以是一个人吗
  • 向银行按揭贷款时,收入流水不够怎么办?
  • 车辆上牌的费用应付多少?
  • 年底本年利润结转错了怎么调
  • 汽车折旧费谁出
  • 营业收入怎么确定
  • 出口退税怎么回事
  • 如何做好企业安全生产工作
  • 零售商品购进的核算需要设置什么科目
  • centos7.6ssh
  • 服务器中的ocp卡全称是什么
  • windowssys
  • windows任务管理器占用cpu过高
  • wan 微型端口
  • os x10.8.5
  • 怎么更换win系统
  • window10系统连接wifi
  • jquery和原生js性能
  • unity脚本如何运行
  • nodejs assert
  • python购物车100行代码
  • opengl learn
  • jquery事件的响应
  • vuex按需加载
  • windows安装包下载
  • javascript教程完整版
  • android中的webview
  • 怎么关闭android
  • android 打包
  • python基础教程入门
  • 扬帆把舵怎么读
  • 地税完税证明是什么样子
  • 天津静海离天津市区多远
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设