同步 非同步 阻塞 非阻塞的理解

2021-08-21 22:34:16 字數 699 閱讀 4946

同步與非同步是針對應用程式與核心的互動而言的。同步過程中程序觸發io操作並等待或者輪詢的去檢視io操作是否完成。非同步過程中程序觸發io操作以後,直接返回,做自己的事情,io交給核心來處理,完成後核心通知程序io完成。

應用程序請求i/o操作時,如果資料未準備好,如果請求立即返回就是非阻塞,不立即返回就是阻塞。簡單說就是做一件事如果不能立即獲得返回,需要等待,就是阻塞,否則就可以理解為非阻塞。

小張喜歡喝咖啡,同時養了好多狗;

出場:1. 小張:相當於我們的客戶端程序

2. 小狗大黑:阻塞處理的io函式

3. 小狗大黃:非阻塞處理的io函式

4. 小狗大白、大紅:非同步處理的io函式

同步阻塞:

小張派大黑去看咖啡煮好沒,大黑等咖啡煮開了才回來;

同步非阻塞:

小張派大黃去看咖啡煮好沒,大黃看了一眼就回來了,過了一會,再大黃再去看看咖啡煮好沒;

非同步非阻塞:

小張派大白和大紅去看咖啡煮好沒,大白和大紅到了廚房後,大白就回來告訴小張,大紅已經到廚房啦;過了一會咖啡煮好了,大紅回到客廳告訴小張

非同步阻塞:(這個太傻了,目前還沒遇到)

小張派大白和大紅去看咖啡煮好沒,大白和大紅到了廚房後,一起在那等著;過了一會咖啡煮好了,大紅大白一起回到客廳告訴小張

那麼採用何種方式,要看小張有沒有養這個型別的狗(系統有沒有相關api),在有的情況下,就看小張個人的需求了(業務需求)

同步 非同步,阻塞 非阻塞理解

由於同步非同步,阻塞非阻塞都學習了有一段時間了。慢慢了快忘了,所以乾脆趁著寒假把知識點都撿起來,寫出來。同步和非同步是一組概念,阻塞和非阻塞是一組概念。大家不要搞混了,不要把同步和阻塞等價,也不要把非同步和非阻塞等價 戲說不是胡說,改編不是亂編 滑稽 在剛開始理解的時候很容易搞混,我們這樣想,同步和...

同步 非同步 阻塞 非阻塞的理解

同步關注的是訊息通訊機制 訊息回來是我處理就是同步,否則就是非同步 阻塞關注的是等待訊息時的狀態 一直等著是阻塞,該幹嘛幹嘛是非阻塞 燒水同步阻塞 點火 發訊息 傻等 阻塞 開了之後處理 同步非阻塞 發訊息 去看電視 非阻塞 一會看下水是否開了,開水之後做處理 非同步阻塞 發訊息 傻等水壺響 同步 ...

非同步,同步,阻塞,非阻塞個人理解

同步 所謂同步,就是函式在發出乙個功能呼叫過程時,在過程沒有完成結束前,函式也是得不到返回的。按照這個定義,其實絕大多數函式都是同步呼叫 例如sin,isdigit等 但是一般而言,我們在說同步 非同步的時候,特指的是那些需要其他部件協作或者需要一定時間完成的任務。最常見的例子就是 sendmess...