博客列表 >node.js来源基本结构基本知识点

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

南瓜又个梦
南瓜又个梦原创
2021年12月20日 18:29:43531浏览

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阶段

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议