javascript中
1.主线程会生成一个执行栈,在这里同步任务会同步执行,异步任务会把它加载到生成的异步队列当中,异步队列分为微任务队列和宏任务队列,当主线程中的执行栈执执行空了之后,就会先去微任务队列执行,直到微任务队列清空,再去宏任务队列执行(微任务的权重比宏任务要高)
node.js中
1.分为六个阶段
1.timers 阶段:这个阶段执行timer(setTimeout、setInterval)的回调
2.I/O callbacks 阶段:执行一些系统调用错误,比如网络通信的错误回调
3.idle, prepare 阶段:仅node内部使用
4.poll 阶段:获取新的I/O事件, 适当的条件下node将阻塞在这里
5.check 阶段:执行 setImmediate() 的回调
6.close callbacks 阶段:执行 socket 的 close 事件回调