快速了解同步和非同步 阻塞和非阻塞

2021-08-28 10:13:04 字數 1023 閱讀 5088

這篇文章純屬自己的理解,如有錯誤請您指出

同步和非同步是針對應用程式和核心互動而言

一、應用程式和核心同步互動有兩種情況:

1.應用程式等待乙個操作執行完成

2.應用程式可以去做其他事,大需要時不時的過來檢視操作是否完成

二、應用程式和核心非同步互動也有兩種情況:

先說明請款:這裡應用程式相當於會派乙個小第等待執行結果(這個假設不太嚴謹,但也可以)

1.應用程式可以和小弟一起去等待(這種情況很傻)

2.應用程式去做別的事情,當執行完成後有小弟通知自己

阻塞和非阻塞指的是執行i/o操作時是否,需要等待就是阻塞,不等待就是非阻塞(可能有點片面化)

現在我們假設:a條件為:同步和非同步  b條件為:阻塞和非阻塞

那麼a和b組合就有四種情況,如圖

這裡的阻塞和非阻塞相當於是同步和非同步只能選擇自己兩種情況的一種

劉老頭想泡龍井茶喝,但是發現水壺裡沒有熱水了

只好開啟爐灶燒熱水,他就在爐灶的旁邊等待直到水燒開,也喝到了茶

上次一直旁邊等待水燒開很浪費時間,這次燒水,他想起有一部電視劇集現在播,然後就去客廳看電視劇集,但他看的很不安心,

他怕水燒開後自己不知道,引發火災,所以每隔一段時間就去廚房看看水是否燒開了,

在不舒服的過程中,水還是燒開了,他也喝到了茶

上次看電視劇集燒水的經歷讓他想這樣來來回回跑已不是事,要是有乙個水燒開後能通知他的水壺

該多好,想著這時電視中出現了乙個廣告:乙個水開了後可以發出聲音的水壺,他二話沒說就把水壺

買了回來。雖然買了乙個可以在水開後自動發出聲音的水壺(發聲音的這個通知相當於小弟的角色),

畢竟是第一次使用他有點不放心,所以他就在一旁等待已在水燒開發出聲音,他心想這個的確很好用,如願的喝上了茶

有了上一次的經驗後,劉老頭熟悉的項水壺中裝入冷水,開始燒水了,這次他很專注的看電視劇集,沒過多久廚房傳來聲音,他知道水已經燒開了,美美的泡上一杯茶,開心及了

同步 非同步 阻塞和非阻塞

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

同步 非同步 阻塞和非阻塞

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

同步 非同步 阻塞和非阻塞

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