天天看點

闡釋同步與異步,阻塞與非阻塞的差別A.同步與異步B.阻塞與非阻塞[舉例說明]:

闡釋同步與異步,阻塞與非阻塞的差別

  • A.同步與異步
    • 同步和異步關注的是消息通信機制
  • B.阻塞與非阻塞
    • 阻塞和非阻塞關注的是程式在等待調用傳回結果時的狀态.
  • [舉例說明]:

A.同步與異步

同步和異步關注的是消息通信機制

同步:當一個程序在執行某個請求的時候,該程序要一直等待該請求的結果傳回後,才能進行後續的執行。

異步:當一個程序在執行某個請求的時候,該程序不必一直等待調用結果的傳回,而是繼續執行後續的操作。當被調用方有結果傳回時,會callback回調通知該程序進行處理。

B.阻塞與非阻塞

阻塞和非阻塞關注的是程式在等待調用傳回結果時的狀态.

阻塞:是指調用結果傳回之前,目前線程會被挂起。一直處于等待消息通知,不能夠執行其他業務,調用線程隻有在得到結果之後才會傳回。

非阻塞:指在該程序在等待時,不會阻塞目前線程,而會執行其他操作。

[舉例說明]:

我要幹兩件事:燒一壺水和看電視,但是燒水在廚房,看電視在客廳。廚房裡有2個水壺,一個是普通的水壺,另一個是水開了會鳴笛的水壺。我可以:

1.用普通的水壺燒,人在廚房裡看着,水開了才能去客廳看電視。 ---------> (同步,阻塞)

2.用普通的水壺燒,人去客廳看電視,隔幾分鐘去廚房看一下。 ------------> (同步,非阻塞)

3.用會鳴笛的水壺,人在走廊裡傻等着水壺鳴笛。 ----------------------------> (異步,阻塞)

4.用會鳴笛的水壺,人去看電視,聽見水壺叫了再去看。 ---------------------> (異步,非阻塞)

普通水壺,需要值守:				同步
會叫的水壺,有回報通知,不需要值守:	異步
等着看電視的我:					阻塞(狀态)
看着電視的我:					非阻塞(狀态)

是以,異步往往配合非阻塞,才是效率最大化。
           
闡釋同步與異步,阻塞與非阻塞的差別A.同步與異步B.阻塞與非阻塞[舉例說明]:

/

繼續閱讀