日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

干貨丨一個例子讓你明白什么是異步編程

 

我們先來看看到底什么是異步。

提到異步就不得不提另外一個概念:同步。

那什么又叫同步呢?

很多初學(xué)者在剛接觸這個概念時會想當(dāng)然的認(rèn)為同步就是同時進(jìn)行。

顯然,這樣的理解是錯誤的,咱不能按字面意思去理解它。

同步,英文全稱叫做Synchronization。

它是指同一時間只能做一件事,也就是說一件事情做完了才能做另外一件事。

比如咱們?nèi)セ疖囌举I票,假設(shè)窗口只有1個,那么同一時間只能處理1個人的購票業(yè)務(wù),其余的需要進(jìn)行排隊(duì)。

這種one by one的動作就是同步。

這種同步的情況其實(shí)有很多,任何需要排隊(duì)的情況都可以理解成同步。

那如果在程序中呢,我們都知道代碼的執(zhí)行是一行接著一行的,比如下面這段代碼:

let ary = []; for(let i = 0;i < 100;i++){ ary[i] = i; } console.log(ary);

 

這段代碼的執(zhí)行就是從上往下依次執(zhí)行,循環(huán)沒執(zhí)行完,輸出的代碼就不會執(zhí)行,這就是典型的同步。在程序中,絕大多數(shù)代碼都是同步的。

同步操作的優(yōu)點(diǎn)在于做任何事情都是依次執(zhí)行,井然有序,不會存在大家同時搶一個資源的問題。

你想想,如果火車站取消排隊(duì)機(jī)制,那么大家勢必會爭先恐后去搶著買票,造成的結(jié)果就是秩序大亂,甚至可能引發(fā)一系列安全問題。

如果代碼不是同步執(zhí)行的又會發(fā)生什么呢?

有些代碼需要依賴前面代碼執(zhí)行后的結(jié)果,但現(xiàn)在大家都是同時執(zhí)行,那結(jié)果就不一定能獲取到。

而且這些代碼可能在對同一數(shù)據(jù)就進(jìn)行操作,也會讓這個數(shù)據(jù)的值出現(xiàn)不確定的情況。

當(dāng)然同步也有它的缺點(diǎn)。由于是依次進(jìn)行,假如其中某一個步驟花的時間比較長,那么后續(xù)動作就會等待它的完成,從而影響效率。

不過,在有些時候我們還是希望能夠在效率上有所提升,也就是說可以讓很多操作同時進(jìn)行。

這就是另外一個概念:異步

假設(shè)火車站有10個人需要買票,現(xiàn)在只有1個窗口提供服務(wù),如果平均每個人耗費(fèi)5分鐘,那么總共需要50分鐘才能辦完所有人的業(yè)務(wù)。

火車站為了提高效率,加開了9個窗口,現(xiàn)在一共有10個窗口提供服務(wù),那么這10個人就可以同時辦理了,總共只需要5分鐘,他們所有人的業(yè)務(wù)都可以辦完。這就是異步帶來的優(yōu)勢。

以上就是今天的分享啦~

分享到:
標(biāo)簽:編程
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定