Node.js 异步并发与数据处理全解析
1. Node.js 的异步并发机制
Node.js 除了使用错误优先的双参数回调外,还有许多基于事件的异步 API,常用于处理流式数据。其内置的非阻塞函数借助操作系统的回调和事件处理机制工作。当调用这些函数时,Node.js 会启动操作,并向操作系统注册事件处理程序,操作完成时会收到通知。传递给 Node 函数的回调会被内部存储,操作系统发送相应事件时,Node.js 会调用该回调。
这种并发方式被称为基于事件的并发。Node.js 核心有一个单线程运行“事件循环”。程序启动时,执行指定代码,该代码可能调用至少一个非阻塞函数,从而向操作系统注册回调或事件处理程序。若没有调用非阻塞函数,程序就是同步的,执行完代码后 Node.js 会退出。当程序执行到末尾,Node.js 会阻塞,直到事件发生,操作系统会再次启动程序运行。Node.js 将操作系统事件映射到注册的 JavaScript 回调并调用该函数。回调函数可能会调用更多非阻塞 Node 函数,注册更多操作系统事件处理程序。回调函数执行完毕后,Node.js 再次进入休眠,循环重复。
对于 Web 服务器等 I/O 密集型应用,这种基于事件的并发方式高效且有效。只要使用非阻塞 API,并在网络套接字和 JavaScript 函数之间有内部映射,Web 服务器就能同时处理 50 个不同客户端的请求,而无需 50 个不同线程。
2. Buffer 类
在 Node.js 中,尤其是从文件或网络读取数据时,经常会使用到 Buffer 类。 Buffer 类似于字符串,但它是字节序列而非字
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



