欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

node.js来源基本结构基本知识点

程序员文章站 2022-03-24 09:30:00
...

node.js

双数版本是稳定版,单数不是稳定版,一般用8以上
node.js是一个平台,它蒋多种技术组合起来,让js调用系统接口,也能开发后台应用

node.js用到了这些技术

V8引擎
libuv
C++实现的一些库zlib等
node.js来源基本结构基本知识点

bindings是什么

我只会写js,但是要调用C++写的库,直接调用不行得有个中间层,binding就是这个中间层,需要根据环境进行配置,然后就集合成立bindings,

node.js的工作流程

node.js来源基本结构基本知识点

libuv

每个平台都有自己的异步I/O库,
libuv是一个跨平台的异步U/I库
功能:可用于UDP,TCP,DNS,文件等的异步操作

V8

将js代码变成本地源码执行
维护调用栈,确保JS函数执行的顺序
内存管理,分配所有对象的内存
垃圾回收,重复利用无用的内存
实现JS的标准库
注意
V8不提供dom api
V8执行JS是单线程的
可以开启两个线程执行JS
V8本身是多线程的

Event LOOP

什么是Event
计时器到期
文件可以读了
socket有内容了,关闭了
什么是Loop
Loop是循环,
因为事件是分优先级的,所以处理起来也是分优先级的,轮询优先级
Event Loop
操作系统可以触发事件JS处理事件
Event Loop就是对事件处理顺序的管理

Event LOOP的流程图
node.js来源基本结构基本知识点

重点阶段
timers检查计时器
poll轮询,检查系统事件
check检查setLmmediate回调
其他阶段用的少
大部分时间是在poll阶段