总结下最近对eventloop的学习。
事情还得从js单线程的特点开始说起。
线程与进程
对js这种单线程的东西,大概执行起来就是
但是这玩意儿性能太差,红色的部分一直是等待状态。所以一方面为了解决这种等待机制带来的效率问题,js就采用了eventloop的机制。
Event loop
个人理解Event loop是一套运行机制,类似于提出了一套解决单线程阻塞问题的解决方案。比如浏览器中的js:
1、js运行执行栈当中的程序,将过程中的宏任务与微任务分别放入宏任务队列与微任务队列。
2、执行栈跑空后,从微任务队列取微任务放入执行
3、微任务跑空后,从宏任务队列取宏任务放入执行,重复2、3。
图取自https://segmentfault.com/a/1190000016278115