We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
No description provided.
The text was updated successfully, but these errors were encountered:
nodeJS eventLoop 与 浏览器的事件循环是很不一样的,我们首先要清楚v8引擎并不提供事件循环机制,那么nodeJS eventLoop是如何运转起来的呢,这就是本文将要介绍的内容。
本文地址:https://github.com/Lighting-Jack/Jack-blog/issues/11
参考 1. http://blog.csdn.net/yezhenxu1992/article/details/51731237 - 深入剖析nodeJS的异步io 2. https://zhuanlan.zhihu.com/p/29650110 - node十问 3. http://www.ruanyifeng.com/blog/2014/10/event-loop.html - 阮一峰谈事件循环
Nodejs结构大体分为三个部分:
Node.js标准库:这部分由javascript编写。也就是平时我们经常require的各个模块,如:http,fs、express,request…… 这部分在源码的lib目录下可以看到;
Node bingdings: nodejs程序的main函数入口,还有提供给lib模块的C++类接口,这一层是javascript与底层C/C++沟通的桥梁,由C++编写,这部分在源码的src目录下可以看到;
最底层,支持Nodejs运行的关键: V8 引擎:用来解析、执行javascript代码的运行环境。 libuv: 提供最底层的IO操作接口,包括文件异步IO的线程池管理和网络的IO操作,是整个异步IO实现的核心! 这部分由C/C++编写,在源码的deps目录下可以看到。
执行栈是存在于v8引擎中的,事件循环是由libuv库提供的,它不是v8的一部分。
nodeJS运行机制:(作者:@BusyRich)
当然这张运行机制图是不完整的,因为任务队列可能不只有一条,正如我上一篇文章所描述的,浏览器中的执行任务会分为microTask和macroTask,nodeJS中也是如此。
上一篇文章:JS eventLoop
Sorry, something went wrong.
No branches or pull requests
No description provided.
The text was updated successfully, but these errors were encountered: