同步 VS 异步

日常生活中,你处理任务的流程大多数都是按照异步逻辑来进行的。让我们通过一个例子来演示,同步模型和异步模型之间的执行差异。

想象一下,在你的日常任务清单中有三个任务需要处理:

  1. 用洗衣机洗衣服
  2. 逛超市
  3. 做晚餐

对于同步模型来说,你必须先完成前一个任务,然后才能做下一个。这就是说,在你去逛超市之前,你必须先洗完衣服;如果你的洗衣机坏了,你永远都不可能去逛超市。对于第三个任务来说,也是一样的,只有在你逛完超市(并且洗完衣服)以后,你才能去做晚餐。

现在,让我们来看看异步模型,你不必等待当前任务完成了,然后才去做下一个任务。你可以在洗衣机洗衣服的同时去逛超市,当你从超市回来以后,你的衣服也洗完了。现在,你可以把衣服放到烘干器中烘干,同时你还可以去做晚餐。

这就是同步模型和异步模型之间的主要差异。在同步模型中,在你去做下一个任务之前,必须要完成当前的任务;但是在异步模型中,你不受这样的约束,你可以用更少的时间来高效的完成任务,在不必等待的情况下你完全可以并行的处理其他任务。

在接下来的一节,我们将了解事件循环,并学习JavaScript是如何处理异步任务的。

用户头像
登录后发表评论