01 事件循环和异步IO
js
/**
* 什么是事件循环
* 编写的JavaScript 浏览器或者Node 之间的桥梁
*/
/**
* 什么是进程(process)? 什么是线程(thread)?
* 进程:启动一个应用程序 就会启动一个或多个线程
* 线程 每一个线程,启动 一个代码 开启一个线程 这个线程为主线程
*/
/**
* Node的架构分析
* 循环(EventLoop)是由libuv(c语言)实现
*
*/
/**
* 阻塞IO非阻塞IO
*
* 非阻塞IO的问题?
* 读取数据 尚未完成 可能已经返回结果了,通过轮训 来实现文件读取直到读完。
* libv 提供了一个线程池
* 获取到结果后 放到事件循环(队列里)
* 事件循环 调用 执行程序对应的回调函数;
*/
/**
* 阻塞与非阻塞 和 同异步的区别?
*
* 阻塞非阻塞 是针对调用者来说的;
*
* 同步异步 是针对调用者说的;
*/
/**
* Node 事件循环的阶段
* 定时器阶段
* 待定回调
* idle (仅供系统内部使用)
* 轮询
* 检测 setImmediate 回调函数
* 关闭的回调函数
*
*/
/**
* Node 的宏任务和微任务
* 宏任务 :setTimeout setInteral IO事件 setImmedite close 事件
* 微任务 Promise 的回调 process.nextTick queueMicrotask
*
*/