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、延迟执行

相关推荐
会飞的鱼先生5 小时前
Node.js-path模块
node.js
企鹅侠客8 小时前
实践篇:14-构建 Node.js 应用程序镜像
docker·node.js·dockerfile
爱分享的程序员10 小时前
前端面试专栏-算法篇:18. 查找算法(二分查找、哈希查找)
前端·javascript·node.js
YongGit12 小时前
探索 AI + MCP 渲染前端 UI
前端·后端·node.js
ncj39343790615 小时前
vscode中对node项目进行断点调试
vscode·node.js
abigale0316 小时前
webpack+vite前端构建工具 -11实战中的配置技巧
前端·webpack·node.js
墨菲安全1 天前
NPM组件 betsson 等窃取主机敏感信息
前端·npm·node.js·软件供应链安全·主机信息窃取·npm组件投毒
csdn_aspnet2 天前
Node.js 使用 WebSockets 和 Socket.IO 实现实时聊天应用程序
node.js
whhhhhhhhhw2 天前
Node.js核心API(fs篇)
node.js
聪聪的学习笔记2 天前
【1】确认安装 Node.js 和 npm版本号
前端·npm·node.js