文章目录
JavaScript 线程机制与事件机制
进程与线程
进程:程序的一次执行,它占有一片独立的内存空间
线程:是进程内的一个独立执行单元,是CPU的最小调度单元
JS是单线程还是多线程?
JS是单线程运行的,但使用H5中的Web Workers可以多线程运行
浏览器是多线程运行的
chrome和新版IE是多进程的
浏览器内核
是什么
支撑浏览器运行的最核心的程序
chrome,safare:webkit
IE:trident
国内: trident+webkit
内核由很多模块组成
定时器
定时器真实定时执行时的吗?
并不能保证真正定时执行
一般会延迟一点(可以接受),延长很长时间(不能接受)
为什么?
定时器回调函数时在主线程执行的,因为js是单线程的
事件循环/驱动模型
模型的运转流程
1.执行初始化代码,将事件回调函数交给对应模块管理
2.当事件发生时,管理模块会将回调函数及其数据添加到回调队列中
3.只有当初始化代码执行完后,才会读取回调队列的回调函数执行
事件循环:从任务队列中循环取出回调函数放入执行栈中处理