美文网首页
消息队列和事件循环

消息队列和事件循环

作者: 9月的甜橙子 | 来源:发表于2021-10-20 14:07 被阅读0次

消息队列

浏览器页面是由消息队列和事件循环系统来驱动的。

如果有一些确定好的任务,可以使用一个单线程来按照顺序处理这些任务,这是第一版线程模型。
要在线程执行过程中接收并处理新的任务,就需要引入循环语句和事件系统,这是第二版线程模型。
如果要接收其他线程发送过来的任务,就需要引入消息队列,这是第三版线程模型。
如果其他进程想要发送任务给页面主线程,那么先通过 IPC 把任务发送给渲染进程的 IO 线程,IO 线程再把任务发送给页面主线程。
消息队列机制并不是太灵活,为了适应效率和实时性,引入了微任务。

基于消息队列的设计是目前使用最广的消息架构,无论是安卓还是 Chrome 都采用了类似的任务机制

事件循环

setTimeout 和 XMLHttpRequest 这两个 WebAPI 来介绍事件循环的应用

function showName(){
  console.log("极客时间")
}
var timerID = setTimeout(showName,200);

通过 setTimeout 指定在 200 毫秒之后调用 showName 函数,并输出“极客时间”四个字。

相关文章

  • 消息队列和事件循环

    消息队列 浏览器页面是由消息队列和事件循环系统来驱动的。 如果有一些确定好的任务,可以使用一个单线程来按照顺序处理...

  • 成长(10/2000)——面试题合集7

    事件循环机制event-loop 事件循环机制由三部分组成:调用栈、消息队列和微任务队列。 event-loop开...

  • 浏览器中的页面循环系统

    消息队列和事件循环:页面是怎么“活”起来的? 浏览器页面是由消息队列和事件循环系统来驱动的。 如果有一些确定好的任...

  • JavaScript 事件循环和消息队列

    JavaScript 的并发模型基于"事件循环"。这个模型与像 C 或者 Objective-c 或者java 这...

  • 事件驱动,IO多路复用

    事件驱动 有一个事件(消息)队列; 鼠标按下时,往这个队列中增加一个点击事件(消息); 有个循环,不断从队列取出事...

  • 《浏览器工作原理与实践》学习笔记(四)

    消息队列和事件循环 要想在线程运行过程中,能接收并执行新的任务,就需要采用事件循环机制。 事件循环机制:相比于线性...

  • 事件循环机制(消息队列)

    JS是单线程语言,因此同一时刻只能执行一行代码,因此,在遇到异步任务时,就出现了事件循环机制来处理异步任务。 任务...

  • Dart的消息循环和消息队列

    一个Dart应用有一个消息循环和两个消息队列--event队列和microtask队列。 event队列包含所有外...

  • 消息循环机制及其原理

    一、什么是消息循环 消息循环概述:Android的消息循环是针对线程的,每个线程都可以有自己的消息队列和消息循环,...

  • node 异步 I/O

    这篇文章主要讲 nodejs 中的异步 IO,关于同步、异步、阻塞、非阻塞 请移步这里。 事件循环 和 消息队列 ...

网友评论

      本文标题:消息队列和事件循环

      本文链接:https://www.haomeiwen.com/subject/cobjoltx.html