node.js之---单线程异步非阻塞 I/O

单线程模型

1、Node.js 使用 单线程 来处理客户端请求和执行任务

2、如果遇到异步任务,node.js使用事件循环 和**异步 I/O 模型,**使得它能够高效地处理大量并发请求

异步操作有哪些

1、读取文件

2、网络请求

3、数据库操作等等

异步非阻塞 I/O

Node.js 中的 I/O 操作 (如文件读取、网络请求、数据库查询等)是 异步 的,这意味着这些操作会被立即发起,Node.js 会继续执行其他任务,而不会等待 I/O 操作完成。操作完成后,Node.js 会通过 回调函数(callback)通知应用程序。

  • 异步(Asynchronous):异步操作的特点是调用后不会等待其结果,而是立即返回,继续执行后续代码,待操作完成后再通过回调通知处理结果。
  • 非阻塞(Non-blocking):非阻塞意味着 I/O 操作不会阻塞程序的执行。即使正在执行 I/O 操作,主线程也不会被"卡住",它会继续执行后续代码。

异步非阻塞 I/O的特点

1、非阻塞性

2、异步性

3、提高并发能力

  • 由于 I/O 操作不会阻塞主线程或进程,多个 I/O 操作可以并行执行,不需要为每个请求创建新的线程或进程。这使得系统能够处理大量并发请求,而不会因为 I/O 操作而导致性能下降或资源浪费。
  • 常见于需要处理高并发的场景,如 Web 服务器、数据库查询、实时通信等。

4、节省系统资源

5、事件驱动

  • 异步非阻塞 I/O 操作通常是事件驱动的。应用程序通过事件循环来监听和处理 I/O 操作的完成。当 I/O 操作完成时,操作系统或底层框架会触发事件,程序通过回调函数来处理结果。
  • 这种方式常见于基于事件循环的框架,如 Node.js

6、延迟执行

相关推荐
贩卖纯净水.16 小时前
Webpack的基本使用 - babel
前端·webpack·node.js
贩卖纯净水.17 小时前
Webpack依赖
前端·webpack·node.js
笑醉踏歌行20 小时前
NVM,Node.Js 管理工具
运维·ubuntu·node.js
chxii1 天前
1.4 Node.js 的 TCP 和 UDP
node.js
xd000021 天前
11. vue pinia 和react redux、jotai对比
node.js
程序猿小D1 天前
第16节 Node.js 文件系统
linux·服务器·前端·node.js·编辑器·vim
前端老六喔2 天前
🎉 开源项目推荐 | 让你的 TypeScript/React 项目瘦身更简单!
node.js·前端工程化
醉书生ꦿ℘゜এ2 天前
npm error Cannot read properties of null (reading ‘matches‘)
前端·npm·node.js
超级土豆粉2 天前
从0到1写一个适用于Node.js的User Agent生成库
linux·ubuntu·node.js
空中湖2 天前
‘pnpm‘ 不是内部或外部命令,也不是可运行的程序
npm·node.js