什么是同步任务?什么是异步任务?什么是事件循环?


什么是同步任务?什么是异步任务?什么是事件循环?

文章插图
 
JAVAscript是单线程,语句按照出现的顺序执行的 。
验证:
什么是同步任务?什么是异步任务?什么是事件循环?

文章插图
 
业务代码实是这样的:
什么是同步任务?什么是异步任务?什么是事件循环?

文章插图
 
执行结果:
什么是同步任务?什么是异步任务?什么是事件循环?

文章插图
 
纳尼?这与“语句按照出现的顺序执行的”违背咯.......
这就是本文需要解释的原因了:
①JavaScript是单线程,很长时间内应该也不会改变;
②JavaScript存在事件循环机制 。
什么是同步任务?什么是异步任务?什么是事件循环?

文章插图
 
JavaScript执行分为 同步任务和异步任务 。同步任务马上执行,异步任务等待执行 。就像小车排队过收费站,带有钱车主先通过,没钱交保护费的把车挪到一边等着 。
上图 call stack 就是收费窗口,过一辆车卡住一辆,箭头2 绿色框那群车主等候交保护费 。已经借到钱的车主,去蓝色区域继续等待,等 call stack 没有车了,收费员会叫蓝色区域 车主去交费 。以后都是这样操作,没有人逃得了!
专业图解:
什么是同步任务?什么是异步任务?什么是事件循环?

文章插图
 
同步就是有过路费,直接交费走人;
【什么是同步任务?什么是异步任务?什么是事件循环?】异步:Event Table就是借到钱了,Event Queue就是等待当收费窗口没其他车主了,过去交费 。


    推荐阅读