<返回更多

什么是异步编程

2019-06-25    
加入收藏
干货丨一个例子让你明白什么是异步编程

 

我们先来看看到底什么是异步。

提到异步就不得不提另外一个概念:同步。

那什么又叫同步呢?

很多初学者在刚接触这个概念时会想当然的认为同步就是同时进行。

显然,这样的理解是错误的,咱不能按字面意思去理解它。

同步,英文全称叫做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分钟,他们所有人的业务都可以办完。这就是异步带来的优势。

以上就是今天的分享啦~

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>