![](https://img.haomeiwen.com/i14473072/7c3bf04de1c165b3.jpg)
bindings
- JS调用C/C++库(eq:http_parser)的中间桥梁(eq:http_parser_bindings.cpp) ;用node.js提供的编译工具编译为.node文件,JS代码直接require这个.node文件,这样js就可以调用http_parser库
libuv
- 跨平台的异步I/O库 (I/O: 所有的输入输出操作)
- 可以用于TCP/UDP/DNS/文件等的异步操作
V8
- 讲JS源代码变成本地代码并执行
- 维护调用栈,确保JS函数执行顺序
- 内存管理,为所有对象分配内存
- 垃圾回收,重复利用无用的内存
- 实现JS标准库
Event Loop
-
对时间处理顺序的管理
image.png
- timers 检查计时器; poll轮询,检查系统事件; check 检查 setImmediate回调;大部分时间Node.js停在poll阶段; 大部分事件都在poll被处理,eq 文件、网络请求
Node.js工作流程
![](https://img.haomeiwen.com/i14473072/2e42ac3e9716b593.png)
API
![](https://img.haomeiwen.com/i14473072/d37264568fc3c52d.png)
网友评论