美文网首页node.jsNodejs
了不起的NodeJS(一)

了不起的NodeJS(一)

作者: 我就是L | 来源:发表于2016-10-07 22:43 被阅读134次

Node 异步IO、事件循环、非阻塞IO、回调

异步IO调用示意图
IO被为文件读写,而文件被抽象为磁盘、网络套接字、硬件等资源。

异步IO.png

基于操作系统的IO方式

  • 阻塞IO,等待操作系统一系列工作完成后,携带数据返回。
  • 非阻塞IO,调用开始后,携带文件描述符返回,需要获取数据时通过文件描述符再次读取。

NodeJS的异步IO实现
NodeJs在*nix下自定义线程池实现异步IO,windows下通过IOCP实现,IOCP底层也是线程池,不过这些线程池是被系统内核管理的。


异步IO实现.png

事件循环
每当启动Node进程时,自动创建一个类似while(true)循环,每次执行事件循环的过程称为Tick,每次Tick就是检查是否有事件等待处理,如果有就取出,并且执行关联的回调函数,然后下次Tick;如果不再有则退出循环。

事件循环是一个消费者/生产者模式,根据不同的事件分为不同的观察者,异步IO、网络请求源源不断的为观察者送入事件,事件循环则从观察者取出事件,并执行。

事件循环TICK流程图.png

NodeJs实现异步IO的过程
组装请求对象 -> 放入线程池等待执行 -> 回调通知

Node异步IO实现过程.png

相关文章

  • 了不起的NodeJS(一)

    Node 异步IO、事件循环、非阻塞IO、回调 异步IO调用示意图IO被为文件读写,而文件被抽象为磁盘、网络套接字...

  • 了不起的NodeJS(二)

    factory constructors prototype constructors+prototype

  • nodejs学习

    打算学之前被朋友推荐看了《了不起的nodejs》,看到60多页看不下去了,基础和原理讲的很细,我觉得对初期学习不是...

  • NodeJS-简介&配置

    NodeJS-简介&配置 NodeJS NodeJS 中文网 NodeJS API 一、客户端的JavaScrip...

  • nodeJs的下载及安装

    一、下载nodeJs 1. nodeJs的下载路径 (1)nodeJs官网:http://nodejs.cn/(2...

  • 17-2-了不起的Nodejs-代码-03

    一、中间件---时间阈值 包含两个js文件 自定义中间件 time.js sample.js 二、中间件

  • 17-2-了不起的Nodejs-代码-01

    一、web-server 二、emit 三、file-exporer 四、fs 五、cli-api 六、http服...

  • 17-2-了不起的Nodejs-代码-02

    一、http服务器 二、form表单 三、querystring模块 四、客户端接收数据 五、客户端发送数据 六、...

  • gulp最佳入门@小四

    一、安装nodeJs 说明:gulp是基于nodeJS,理所当然需要安装nodeJS; 安装:打开nodejs官网...

  • nodejs大纲

    nodejs大纲 目录 nodejs是什么 使用nodejs创建一个服务器(接口) nodejs的模块系统 nod...

网友评论

    本文标题:了不起的NodeJS(一)

    本文链接:https://www.haomeiwen.com/subject/nhzyyttx.html