浏览器的多线程

Youky ... 2021-11-27 浏览器 Less than 1 minute

# 浏览器的多线程

浏览器本身是多进程、多线程的。不同的tab页属于不同的进程

对于一个tab页来讲,有多个不同的线程负责不同的内容。

# 1. GUI线程

负责渲染HTML元素,产生重绘和重排时会执行。

在JS脚本运行期间,GUI线程处于 “挂起” 状态

# 2. JS引擎线程

负责执行JS代码,一个tab页中只能有一个JS线程

# 3. 事件触发线程

用来控制事件循环。

异步任务加入异步队列后,就是交由事件触发线程处理。

# 4. 定时器线程

负责处理setTimeoutsetTimeInterval等定时器事件。由于JS是单线程的,可能会影响计时的准确性。

# 5. HTTP请求线程

对于XHR请求,浏览器会新开一个线程进行请求。

Last update: November 27, 2021 21:16
Contributors: youky7