js事件循环(分为同步和异步任务)
程序员文章站
2023-12-29 09:25:52
为了提高效率,分为同步和异步任务(需要等待io处理完返回结果后再执行的任务)
1. 所有同步任务都在主线程上执行,形成执行栈
2. 但异步任务返回结果后,将要处理的事件添加进任...
为了提高效率,分为同步和异步任务(需要等待io处理完返回结果后再执行的任务)
1. 所有同步任务都在主线程上执行,形成执行栈
2. 但异步任务返回结果后,将要处理的事件添加进任务队列(事件队列,消息队列)
3.一旦主线程的所有同步任务执行完,主线程就读取任务队列里的异步任务并执行
主线程运行时产生堆和栈,栈中代码调用各种外部api,在任务队列中加入各种事件,当栈中代码都执行完毕,主线程就会读取任务队列里的事件并执行