我们先来看看到底什么是异步。
提到异步就不得不提另外一个概念:同步。
那什么又叫同步呢?
很多初学者在刚接触这个概念时会想当然的认为同步就是同时进行。
显然,这样的理解是错误的,咱不能按字面意思去理解它。
同步,英文全称叫做Synchronization。
它是指同一时间只能做一件事,也就是说一件事情做完了才能做另外一件事。
比如咱们去火车站买票,假设窗口只有1个,那么同一时间只能处理1个人的购票业务,其余的需要进行排队。
这种one by one的动作就是同步。
这种同步的情况其实有很多,任何需要排队的情况都可以理解成同步。
那如果在程序中呢,我们都知道代码的执行是一行接着一行的,比如下面这段代码:
let ary = []; for(let i = 0;i < 100;i++){ ary[i] = i; } console.log(ary);
这段代码的执行就是从上往下依次执行,循环没执行完,输出的代码就不会执行,这就是典型的同步。在程序中,绝大多数代码都是同步的。
同步操作的优点在于做任何事情都是依次执行,井然有序,不会存在大家同时抢一个资源的问题。
你想想,如果火车站取消排队机制,那么大家势必会争先恐后去抢着买票,造成的结果就是秩序大乱,甚至可能引发一系列安全问题。
如果代码不是同步执行的又会发生什么呢?
有些代码需要依赖前面代码执行后的结果,但现在大家都是同时执行,那结果就不一定能获取到。
而且这些代码可能在对同一数据就进行操作,也会让这个数据的值出现不确定的情况。
当然同步也有它的缺点。由于是依次进行,假如其中某一个步骤花的时间比较长,那么后续动作就会等待它的完成,从而影响效率。
不过,在有些时候我们还是希望能够在效率上有所提升,也就是说可以让很多操作同时进行。
这就是另外一个概念:异步
假设火车站有10个人需要买票,现在只有1个窗口提供服务,如果平均每个人耗费5分钟,那么总共需要50分钟才能办完所有人的业务。
火车站为了提高效率,加开了9个窗口,现在一共有10个窗口提供服务,那么这10个人就可以同时办理了,总共只需要5分钟,他们所有人的业务都可以办完。这就是异步带来的优势。
以上就是今天的分享啦~