课程名称:2周刷完100道前端优质面试真题
课程章节:第5章 前端面试技能拼图3 :知识深度 - 原理和源码
主讲老师:双越
课程内容:
今天学习的内容包括:
5-9 -浏览器和nodejs事件循环(Event Loop)有什么区别-浏览器
5-10 -浏览器和nodejs事件循环(Event Loop)有什么区别-nodejs
5-13 -nodejs如何开启多进程,进程如何通讯-进程和线程的区别
课程收获:
浏览器事件循环
js单线程,js执行和dom渲染用同一个线程
微任务 promise async
宏任务 setTimeout
同步》微任务》微任务前的dom操作的结果的渲染》宏任务
31行dom已构建但还未渲染
node事件循环
区别浏览器,宏任务微任务分不同类型不同优先级。
微任务:
按优先级来
process.nextTick(推荐setImmediate 代替)
promsie, async
宏任务:
按顺序来,每个开始前都看是否有微任务要执行
timers setTimeout setInterval
I/O callbacks 处理网络、流、TCP 的错误回调
idle, prepare 闲置状态(nodejs 内部使用)
poll 轮询 执行 poll 中的 I/O 队列
check 检查 - 存储 setImmediate 回调
close callbacks - 关闭回调,eg.socket.on(‘close’)
同步》微任务》宏任务
进程 & 线程
进程:资源分配调度最小单位。
线程:执行运算。
一个进程包含多个线程。进程间相互隔离。线程共享内存空间。
JS单线程,但可开启多进程,eg.webWorker
如果是多核 CPU ,内存较大,那就适合多进程。