事件循环原理

2023-11-22  本文已影响0人  crush_d872

浏览器进程模型

浏览器是一个多进程多线程的应用程序
为了避免互相影响,为了减少连环崩溃的几率,当启动浏览器后,它会自启动多个进程


image.png
1.浏览器进程

主要负责界面显示、用户交互、子进程管理等。浏览器进程内部会启动多个线程处理不同的任务

2.网络进程

负责加载网络资源。网络进程内部会启动多个线程来处理不同的网络任务

3.渲染进程

渲染进程启动后,会开启一个渲染主线程,主线程负责执行HTML、CSS、JS代码。
默认情况下,浏览器会为每个标签页开启一个新的渲染进程,以保证不同的标签页之间不互相影响

渲染主线程是如何工作的?

image.png

1.在最开始的时候,渲染主线程会进入一个无限循环
2.在每一次循环会检查消息队列中是否有任务存在。如果有,就取出第一个任务执行,执行完一个后进入下一次循环;如果没有,则进入休眠状态
3.其他所有线程(包括其他进程的线程)可以随时向消息队列添加任务。新任务会加到消息队列的末尾。在添加新任务时,如果主线程是休眠状态,则会将其唤醒以继续循环拿任务

上一篇 下一篇

猜你喜欢

热点阅读