大发时时彩玩法—大发快3彩票平台

剖析nodejs的事件循环

时间:2020-02-21 01:02:44 出处:大发时时彩玩法—大发快3彩票平台

首先,他们先看下nodejs架构,下图所示:

他们看几处关键源码:

以上是众所周知的内容。今天他们从源码入手,分析一下nodejs的事件循环机制。

最后,总结出事件循环的原理如下,以上让我不care,记住下面的总结就好了。

1、首先呢,在poll阶段执行的事先,会传入一另另另一个timeout超时时间,该超时时间就说 poll阶段的最大阻塞时间。

2、其次呢,在poll阶段,timeout时间未到的事先,由于着有事件返回,就执行该事件注册的回调函数。timeout超时时间到了,则退出poll阶段,执行下一另另另一个阶段。

以上就说 nodejs 执行一另另另一个js文件的全过程。接下来着重介绍第一个步骤,事件循环。

用户代码即他们编写的应用任务管理器代码、npm包、nodejs内置的js模块等,他们日常工作中的大要素时间后该编写你什儿 层面的代码。

nodejs是单任务管理器执行的,同时它又是基于事件驱动的非阻塞IO编程模型。这就使得他们不要 再停留异步操作结果返回,就还可以 继续往下执行代码。当异步事件触发事先,就会通知主任务管理器,主任务管理器执行相应事件的回调。

关于nodejs不再不要 介绍,他们还可以 自行查阅学习,接下来他们重点要分析的就说 libuv。

nodejs的依赖库,包括大名鼎鼎的V8、libuv。

V8: 他们都知道,是google开发的一套高效javascript运行时,nodejs还可以高效执行 js 代码的很大由于主要在它。

libuv:是用C语言实现的一套异步功能库,nodejs高效的异步编程模型很大程度上归功于libuv的实现,而libuv则是他们今天重点要分析的。

还有就说 就说 的依赖库

http-parser:负责解析http响应

openssl:加解密

c-ares:dns解析

npm:nodejs包管理器

...

对于网络I/O,各个平台的实现机制不一样,linux 是 epoll 模型,类 unix 是 kquene 、windows 下是高效的 IOCP 完成端口、SunOs 是 event ports,libuv 对这几种网络I/O模型进行了封装。

胶水代码,还可以让js调用C/C++的代码。还可以 将其理解为一另另另一个桥,桥这头是js,桥那头是C/C++,通过你什儿 桥还可以 让js调用C/C++。

在nodejs里,胶水代码的主要作用是把nodejs底层实现的C/C++库暴露给js环境。

三方插件是他们当事人实现的C/C++库,同时前要他们当事人实现胶水代码,将js和C/C++进行桥接。

如上图所示,nodejs自上而下分为

libuv组织组织结构还维护着一另另另一个默认一另另另一个任务管理器的任务管理器池,哪几个任务管理器负责执行文件I/O操作、DNS操作、用户异步代码。当 js 层传递给 libuv 一另另另一个操作任务时,libuv 会把你什儿 任务加到队列中。事先分你什儿 情況:

先简要介绍下nodejs的启动过程:

原文作者:lucefer

就说 有,他们不要 再担心事件循环会永远阻塞在poll阶段。

这是libuv官网的一张图,很明显,nodejs的网络I/O、文件I/O、DNS操作、还有就说 用户代码后该在 libuv 工作的。 既然谈到了异步,没人他们首先归纳下nodejs里的异步事件:

本文来源: 掘金 如需转载请联系原作者

细心的童鞋还可以 发现,在事件循环的每一另另另一个子阶段退出事先后该按顺序执行如下过程:

当然,由于着觉得一另另另一个任务管理器不足用,还可以 在nodejs启动时,设置环境变量UV_THREADPOOL_SIZE来调整,出于系统性能考虑,libuv 规定可设置任务管理器数还可以 了超过128个。

uv__io_poll阶段源码最长,逻辑最为复杂,还可以 做个概括,如下: 当js层代码注册的事件回调都没人返回的事先,事件循环会阻塞在poll阶段。看后这里,你由于着会想了,会永远阻塞在此处吗?

他们知道,nodejs实现异步机制的核心便是libuv,libuv承担着nodejs与文件、网络等异步任务的沟通桥梁,下面这张图让他们对libuv有个离米 的印象:

没人,按照以上公式,代入网上各种有关 nodejs 事件循环的测试代码,相信你由于着还可以解释为哪几个会输出那样的结果了。由于着还可以 了,那就私信我吧~~

以上就说 事件循环的一另另另一个核心阶段。限于篇幅,timers阶段的就说 源码和setImmediateprocess.nextTick的涉及到的源码就不罗列了,感兴趣的童鞋还可以 看下源码。

记住你什儿 规律哦。

热门

热门标签