Node.js中的异步I/O是如何进行的?

Posted sivkun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js中的异步I/O是如何进行的?相关的知识,希望对你有一定的参考价值。

Node.js的异步I/O通过事件循环的方式实现。其中异步I/O又分磁盘I/O和网络I/O。在磁盘I/O的调用中,当发起异步调用后,会将异步操作送进libuv提供的队列中,然后返回。当磁盘I/O执行完成之后,会形成一个事件,事件循环的过程中发现该事件后,会将其消费。消费过程就是将得到的数据和传入的回调函数执行。

网络I/O与磁盘I/O的差异在于它不需要线程池来进行处理,而是在每次时间循环的过程中通过IOCP/epoll/kqueue/event ports来获取网络I/O的 事件队列。

摘自:《技术之瞳》

以上是关于Node.js中的异步I/O是如何进行的?的主要内容,如果未能解决你的问题,请参考以下文章

node.js的异步编程

青训营Node.js基础 - 异步编程四种解决方案

青训营Node.js基础 - 异步编程四种解决方案

node.js中events模块应用

关于node.js内部异步I/O机制的困惑

为啥在 Node.js 中阻塞文件 I/O 时异步性能更差?