0%

Event Loop

Event Loop

概念

Event Loop是一个程序结构,用于等待和发送消息和事件。

简单说,就是在程序中设置两个线程:一个负责程序本身的运行,称为”主线程”;另一个负责主线程与其他进程(主要是各种I/O操作)的通信,被称为”Event Loop线程”(可以译为”消息线程”)。

上图主线程的绿色部分,还是表示运行时间,而橙色部分表示空闲时间。每当遇到I/O的时候,主线程就让Event Loop线程去通知相应的I/O程序,然后接着往后运行,所以不存在红色的等待时间。等到I/O程序完成操作,Event Loop线程再把结果返回主线程。主线程就调用事先设定的回调函数,完成整个任务。

event loop 的执行规则:

  1. 首先执行宏任务,这个宏任务一般指 主干代码,我们经常称之为同步代码;
  2. 执行过程中如果遇到了微任务,将其加入到微任务队列中;
  3. 执行完宏任务之后,开始执行微任务队列中的任务,直至微任务队列为空;
  4. 微任务执行完之后,开始执行下一个宏任务;
  5. 如何循环执行,直到宏任务和微任务都执行完。
  • 本文作者: David Xue
  • 本文链接: https://xdw-h.github.io/29/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!