消息队列和事件循环系统来驱动浏览器页面
浏览器页面是由消息队列和事件循环系统来驱动的。
- 渲染进程专门有一个 IO 线程用来接收其他进程传进来的消息,接收到消息之后,会将这些消息组装成任务发送给渲染主线程,IO 线程中产生的新任务添加进消息队列尾部。
- 渲染主线程会循环地从消息队列头部中读取任务,执行任务。
- 消息队列可以存放要执行的任务
微任务队列
每个宏任务下都会维护一个微任务队列
延迟任务队列
在 Chrome 中除了正常使用的消息队列之外,还有另外一个有一个延迟任务队列。说是队列,为了和消息队列统一起来,不然表述起来有点拗口,其实是一个hashmap结构。
执行时机
处理完消息队列中的一个任务之后,就开始处理延迟任务队列。会计算延迟任务队列中的每个任务是否到期了,到期了就去执行,直到所有到期的任务都执行结束,才会进入下一轮循环!
标签:队列,消息,任务,循环,事件,执行,延迟 From: https://www.cnblogs.com/superlizhao/p/17023636.html