關(guān)于異步編程那些你不知道的事

雖然我們生活在一個異步的世界里,但對于多數(shù)編程初學(xué)者來說,異步還是很陌生。學(xué)習(xí)一門編程語言,通常都是從同步流程開始的,即順序、分支和循環(huán)。而異步流程是什么呢——開始一個異步調(diào)用,然后……就沒有然后了。異步程序跑哪去了?

異步程序會以某種異步的形式在運行著,比如多線程、異步IO等,直到處理完成。那如果需要處理結(jié)果怎么辦?給一個程序入口,讓它處理完當(dāng)前過程之后,把處理結(jié)果送到這個入口,然后執(zhí)行另一段程序——俗稱回調(diào)?;卣{(diào)一般使用?callback?這個名稱,不過有時候我更喜歡使用?next,因為它代表著下一個處理步驟。

同步和異步的概念

現(xiàn)在我們接觸到了一些概念,比如同步和異步,它們是什么?

這兩個概念并不來源于編程語言,而是來源于低層指令,甚至更低層的——電路。它們是基于時序的兩個概念,其中,“步”是指步調(diào),所以同步表示相同的步調(diào),而異步表示不同的步調(diào)。當(dāng)然這兩個概念提升到程序這個級別的時候,精確的意思與時鐘無關(guān),但所表示的意義仍然未變。

同步

舉個生活中的例子來說明這個問題——排除買票。售票廳開了一個窗口,有一隊人在排隊依次買票。這個隊伍中,前面一個人往前走了一步,后面的人才能往前走一步;前面的人在等待,后面的人就一定在等待。那么在理想的情況下,所有人可以同時向前邁步。OK,大家步伐一致,稱為同步。

這里把售票窗口看作是處理器,每個人看作是等待執(zhí)行的指令,買票這個動作就是在執(zhí)行指令。它的特點是按步就班,如果一個人買票時間過長(指令執(zhí)行時間過長),就會造成阻塞。

轉(zhuǎn)載自51CTO博客,更多內(nèi)容請:點我跳轉(zhuǎn)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,872評論 25 709
  • 第一章 2013年11月11號那天,宿舍的同志們集體自殺般的齊齊上網(wǎng)瘋狂購物外加調(diào)戲剛來不久的大一純情小男生。而我...
    莫阿池閱讀 215評論 0 0
  • 想要朝陽,卻給了我一片黃昏。
    胡蘿卜小小閱讀 421評論 0 0
  • 他是那些年我做作業(yè)時聽著的歌 是小小鉛筆盒里貼著的貼紙 是一本本買回家的雜志 還有小心翼翼剪下來的文字和圖片 1、...
    Joean喬安閱讀 941評論 1 1
  • importance? millions and billions of years, what is true ...
    qynglang閱讀 154評論 0 0

友情鏈接更多精彩內(nèi)容