zoukankan      html  css  js  c++  java
  • Event Loop个人理解

    javascript引擎单线程程序,其执行同步操作会按顺序向下执行,执行异步操作则使用事件循环模型。

    js引擎线程遇到异步操作,会将异步操作交给对应的观察者,

    异步操作包括:

    dom事件 click,mousedown等
    定时器 setTimeout,setInterval
    IO 网络IO,文件IO,其他IO(localStorage,cookie),IO操作会交给对应的线程池来执行

    观察者观察异步操作的状态,在异步操作执行完成,会将对应的异步信息(包括callback等)封装成事件推入事件队列。

    js引擎线程会不断的轮询事件队列,按照先进先出的原则读取事件,若有事件,则取出,并执行其callback,执行一次callback的过程称为一次循环(Tick),

    执行完成,进入下一次循环(nextTick)。

    若事件队列为空,则js引擎执行空循环。

    在浏览器中,js引擎与GUI引擎是互斥的,即js引擎会阻塞UI渲染,当js同步持续执行的时候,UI不会更新,会处于卡死状态。 

  • 相关阅读:
    冲刺2 05
    冲刺02 04
    人月神话阅读笔记01
    进度条
    团队冲刺第十天
    团队冲刺第九天
    学习进度条13
    团队冲刺第八天
    怎样买书更便宜
    冲刺第七天
  • 原文地址:https://www.cnblogs.com/mengff/p/6224426.html
Copyright © 2011-2022 走看看