同步,非同步和 阻塞,非阻塞

2022-04-29 04:42:11 字數 633 閱讀 6514

阻塞和非阻塞,同步和非同步是node.js裡經常遇到的詞彙,我舉個簡單的例子來說明:

我要看足球比賽,但是媽媽叫我燒水,電視機在客廳,燒水要在廚房。家裡有2個水壺,乙個是普通的水壺,另乙個是水開了會叫的那種水壺。我可以:

用普通的水壺燒,人在邊上看著,水開了再去看球。(同步,阻塞)這個是常規做法,但是我看球不爽了。

用普通水壺燒,人去看球,隔幾分鐘去廚房看看。(同步,非阻塞)這個又大問題,萬一在我離開的幾分鐘水開了,我就麻煩了。

用會叫的水壺,人在邊上看著。(非同步,阻塞)這個沒有問題,但是我太傻了。

用會叫的水壺,人去看球,聽見水壺叫了再去看。(非同步,非阻塞)這個應該是最好的。

等著看球的我:阻塞

看著電視的我:非阻塞

普通水壺:同步

會叫的水壺:非同步

所以,非同步往往配合非阻塞,才能發揮出威力。

還可以這麼說

非阻塞:相當於多執行緒,乙個任務由多個小任務組成,當乙個任務沒有完成時,其他任務不受影響。

同步:某個時間或時間段內只能做一件事

非同步:某個時間或時間段內能同時做多個事情

同步 非同步 阻塞和非阻塞

同步 非同步 阻塞和非阻塞 在進行windowsapi winsock 網路程式設計時,我們常常見到同步 非同步 阻塞和非阻塞四種呼叫方式。這些方式其實都可以擴充套件為廣義的概念,幫助我們理解多執行緒,多程序,實時作業系統等更廣的概念。同步 synchronic 所謂同步,就是在發出乙個功能呼叫時,...

同步 非同步 阻塞和非阻塞

在進行網路程式設計時,我們常常見到同步 非同步 阻塞和非阻塞四種呼叫方式。這些方式彼此概念並不好理解。所謂同步,就是在發出乙個功能呼叫時,在沒有得到結果之前,該呼叫就不返回。按照這個定義,其實絕大多數函式都是同步呼叫 例如sin,isdigit等 但是一般而言,我們在說同步 非同步的時候,特指那些需...

同步 非同步 阻塞和非阻塞

這幾個概念總是記了又忘。寫下來。同步和非同步是針對應用程式和核心的互動而言的 同步指的是使用者程序觸發io操作並等待或者輪詢的去檢視io操作是否就緒,非同步是指使用者程序觸發io操作以後便開始做自己的事情,而當io操作已經完成的時候會得到io完成的通知。阻塞和非阻塞是針對於程序在訪問資料的時候,根據...