js的运行机制

好 欢迎前来观看 今天说下js的运行机制
说起js的运行机制,我们先说一下进程与线程,我们现在电脑都是多进程的,在cpu中进程就代表一个程序,而一个进程里面又有很多线程,我们可以这么比喻,几个进程就相当于一个快递公司,这个快递公司有很多的汽车,每天去往各个省份去送快递,可以想一下,一辆车可以同时往多个省送东西吗,肯定不能。那么我们就把一个进程想成一个快递公司,汽车想成是每一个线程,车多了,每天才不会耽误用户的快递,同样,线程多了,我们的程序执行的才顺利。这就是进程与线程的关系。那么这和js的运行机制有啥关系呢,我们知道,js就是一个单线程的,什么意思,就是说这家快递公司没钱了,车都卖了,只有一辆车了,而这一辆车每天要把全国各地跑个遍,而用户这边只能等到这个车把别的省份的快递送完了才能送到他。这就是单线程,但是这样cpu的空间就有很多没有用上。于是研究js的人员就想到了异步这个东西。所以我们js的运行机制又分为同步与与异步,我们把同步执行的就做主线程又叫执行栈,把异步的事件放到任务队列。那么此时一共有两个东西,一个执行栈,一个任务队列,执行栈先去执行同步事件,执行完同步了,没得执行了,再去执行任务队列里面的那些异步事件。记住一句话,只有被执行栈执行了的事件才叫做真正的执行了,所以具体的分为四步:
1:同步执行的事件全部走执行栈
2:异步执行的,也就是说我们的数据还没有回来,这里没法执行,我们把这个事件放到任务队列中。
3:等待同步事件全部执行完毕,再去执行任务队列里面的异步事件
4:js一直重复以上三个步骤。
只要主线程(执行栈)空了,就会去读取"任务队列(里面放着异步事件)",这就是JavaScript的运行机制。这个过程会不断重复
http://www.ruanyifeng.com/blog/2014/10/event-loop.html官网

发布了13 篇原创文章 · 获赞 0 · 访问量 181
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览