浏览器的线程有如下5大类:
1. JS引擎线程
负责执行执行栈最顶端的JS代码,与GUI线程互斥。
2. GUI线程
负责渲染HTML、CSS,二维视图,三维视图,GUI内部的线程是多线程。
3. 事件触发线程
如click、resize等事件触发后,将触发后的执行函数,推入执行栈。
4. 定时触发器线程
负责计时,等setInterval、setTimeout等待时间结束后,将执行函数推入执行栈。
5. 异步http请求线程
XMLHttpRequest在连接后,浏览器会新开一个线程请求,等检测到请求状态改变后,将对应执行函数推入执行栈中,等待JS引擎线程执行。