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

更多相关文章

  1. android内部类广播(本地广播)BroadcastReceiver的静态注册方法(Andr
  2. android 入门demo 事件监听
  3. mysql事件之修改事件(ALTER EVENT)、禁用事件(DISABLE)、启用事件(ENA
  4. mysql的计划任务与事件调度实例分析
  5. Android(安卓)OnTouchListener 触摸事件 & GestureDetector 手势
  6. android、pull解析xml
  7. Android(安卓)BaseAdapter如何获得每一项并添加按钮事件
  8. Android(安卓)ListView列表分组
  9. Android另外一种形式的事件声明

随机推荐

  1. Android APN
  2. Android免费课程分享
  3. Android:TextView文字跑马灯的效果实现
  4. (转)为什么Android不是GPL许可证?
  5. android 抽屉式滑动demo
  6. android button多状态, selector
  7. 修改ScrollView滚动条样式
  8. Android Studio Toast/Notification中文
  9. Android Overview
  10. Android的Adapter与BaseAdapter的介绍