今天来分享以下异步程序执行的原理
程序执行分为同步执行和异步执行,计算机的大部分程序都是同步执行,包括顺序控制语句,分支控制语句,循环控制语句;而异步执行是一种比较特殊的程序执行方法,一般定时器(setInterval)、延时器(setTimeout)、事件的绑定、Ajax请求都是异步执行。
当程序执行是,同步程序先执行,此时的异步程序会先存储在异步池中等待同步程序执行完毕,当同步程序执行完毕,会根据异步程序的等待时间来决定谁先执行,如果时间一样,会根据程序的书写顺序来执行。
接下来用简单代码来演示一下:
<script>
setInterval(function(){
console.log(678);
},2000)
setInterval(function(){
console.log(123);
},1000)
console.log(456);
</script>
结果:
如果同步程序和异步程序按代码顺序执行的话结果应该为:678 123 456;但结果并不是这样,说明异步程序在同步程序之后执行;按照设定时间长短:第一个定时器在第二个定时器后执行。