关于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官网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值