同步與非同步,阻塞與非阻塞
老張愛喝茶,廢話不說,煮開水。
出場人物:老張,水壺兩把(普通水壺,簡稱水壺;會響的水壺,簡稱響水壺)。
1 老張把水壺放到火上,立等水開。(同步阻塞)
老張覺得自己有點傻
2 老張把水壺放到火上,去客廳看電視,時不時去廚房看看水開沒有。(同步非阻塞)
老張還是覺得自己有點傻,於是變高端了,買了把會響笛的那種水壺。水開之後,能大聲發出嘀~~~~的噪音。
3 老張把響水壺放到火上,立等水開。(非同步阻塞)
老張覺得這樣傻等意義不大
4 老張把響水壺放到火上,去客廳看電視,水壺響之前不再去看它了,響了再去拿壺。(非同步非阻塞)
老張覺得自己聰明瞭。
所謂同步非同步,只是對於水壺而言。
普通水壺,同步;響水壺,非同步。
雖然都能幹活,但響水壺可以在自己完工之後,提示老張水開了。這是普通水壺所不能及的。
同步只能讓呼叫者去輪詢自己(情況2中),造成老張效率的低下。
所謂阻塞非阻塞,僅僅對於老張而言。
立等的老張,阻塞;看電視的老張,非阻塞。
情況1和情況3中老張就是阻塞的,媳婦喊他都不知道。雖然3中響水壺是非同步的,可對於立等的老張沒有太大的意義。所以一般非同步是配合非阻塞使用的,這樣才能發揮非同步的效用。
相關推薦
同步與非同步,阻塞與非阻塞
老張愛喝茶,廢話不說,煮開水。 出場人物:老張,水壺兩把(普通水壺,簡稱水壺;會響的水壺,簡稱響水壺)。 1 老張把水壺放到火上,立等水開。(同步阻塞) 老張覺得自己有點傻 2 老張把水壺放到火上,去客廳看電視,時不時去廚房看看水開沒有。(同步非阻塞) 老張還是覺得自己有點傻,於是變高端了,
IO模型:同步與非同步,阻塞與非阻塞
Unix下的IO可以區分為5種I/O模型: 阻塞式I/O非阻塞式I/OI/O複用(select和poll)訊號驅動式I/O(SIGIO)非同步I/O Unix下一個輸入操作可分為兩個步驟: 等待資料準備好從核心向程序複製資料 對於一個網路I/O的輸入操作也是一樣:
(精闢)socket阻塞與非阻塞,同步與非同步,select,poll,epoll
1. 概念理解 在進行網路程式設計時,我們常常見到同步(Sync)/非同步(Async),阻塞(Block)/非阻塞(Unblock)四種呼叫方式:同步:所謂同步,就是在發出一個功能呼叫時,在沒有得到結果之前,該呼叫就不返回。也就是必須一件一件事做,
同步、非同步與阻塞、非阻塞
UNIX下可用的I/O模型: 阻塞式I/O; 非阻塞式I/O; I/O複用(select,poll,epoll…); 訊號驅動式I/O(SIGIO); 非同步I/O(POSIX的aio_系列函式); 阻塞式I/O模型:預設情況下,所有套接字都是阻
同步、非同步與阻塞、非阻塞的辨別理解
所謂同步非同步,只是對於水壺而言,即應用程式。 雖然都能幹活,但響水壺可以在自己完工之後,提示老張水開了。這是普通水壺所不能及的。 同步只能讓呼叫者去輪詢,造成老張效率的低下。 所謂阻塞非阻塞,僅僅對於老張而言。 立等的老張,阻塞;看電視的老張,非阻塞。 情況1和情況3中老張就是阻塞的。雖然3中響水
阻塞、非阻塞與同步、非同步IO的區別
轉自知乎的某條評論……@愚抄 今天看文章發現評論中有人把IO的幾個概念講的通俗易懂,拿來和大家分享一下: 關鍵詞 阻塞同步IO 阻塞非同步IO 非阻塞同步IO 非阻塞非同步IO 段子如下: 老張愛喝茶,廢話不說,煮開水。 出場人物:老張,水壺
關於同步、非同步與阻塞、非阻塞的理解
1、前言 前一段時間出去面試,被問到同步、非同步與阻塞、非阻塞的區別。我一時半會沒有想出來,作為一個工作三年的人來說,實在很慚愧。我當時理解同步、非同步屬於兩個程序中間的協作關係,例如使用瀏覽器訪問一個網站,需要多次請求服務端,才能載入完整個頁面的內容。同步的操作如
阻塞式/非阻塞式與同步/異步的區別
被鎖 network hat roc 非阻塞io 默認 sock 操作系統 images 阻塞式IO/非阻塞IO 阻塞式IO(blocking-IO) 默認情況下,所有的套接字socket連接都是阻塞式的,在和操作系統交互的過程之中。比如說一個讀操作: 1.因為涉及到網絡數
阻塞(Blocking)非阻塞(Non-Blocking)與同步(Synchronous)異步(Asynchronous)
sync https 機制 ole 通信機制 syn 同步 ron tro 參考: http://blog.jobbole.com/103290/ https://www.zhihu.com/question/19732473/answer/23434554 http://
同步、異步與阻塞、非阻塞
架構 客戶端 多路復用 錯誤 同步非阻塞 函數 鏈接 調用 同步阻塞 同步阻塞,用戶空間的應用程序執行一個系統調用,這意味著應用程序會一直阻塞,直到系統調用完成為止(數據傳輸完成或者發生錯誤)。 同步非阻塞,設備以非阻塞形式打開,這意味著 io 操作不會立刻完成,需要應用程
什麼是同步和非同步,什麼是阻塞和非阻塞
同步和非同步是針對應用程式和核心的互動而言的,同步指的是使用者程序觸發IO操作並等待或者輪詢的去檢視IO操作是否就緒,而非同步是指使用者程序觸發IO操作以後便開始做自己的事情,而當IO操作已經完成的時候會得到IO完成的通知。 以銀行取款為例: 同步:自己親自出馬持銀行卡到銀行取錢(使用同
談IO中的阻塞和非阻塞,同步和非同步及三種IO模型
什麼是同步和非同步? 燒水,我們都是通過熱水壺來燒水的。在很久之前,科技還沒有這麼發達的時候,如果我們要燒水,需要把水壺放到火爐上,我們通過觀察水壺內的水的沸騰程度來判斷水有沒有燒開。隨著科技的發展,現在市面上的水壺都有了提醒功能,當我們把水壺插電
同步和非同步,阻塞和非阻塞
同步方法呼叫一旦開始,呼叫者必須等到方法呼叫返回後,才能繼續後續的行為。 非同步方法呼叫更像一個訊息傳遞,一旦開始,方法呼叫就會立即返回,呼叫者就可以繼續後續的操作。而,非同步方法通常會在另外一個執行
同步、非同步、阻塞、非阻塞,以及IO模型的理解
同步和非同步 同步 就是你知道你什麼時候在做什麼,做完一件事情再做下一件事情,因此主動權在自己手裡。比如通過等待或輪詢,你在某個時間點總是知道結果是怎樣的(有資料還是沒資料等)。 非同步 就是你不知道什麼時候會發生什麼。比如你註冊了多個回撥函式,你不知道什
阻塞和非阻塞,同步和非同步IO及IO多路複用
阻塞和非阻塞,同步和非同步 1 例子 故事:老王燒開水。 出場人物:老張,水壺兩把(普通水壺,簡稱水壺;會響的水壺,簡稱響水壺)。 老王想了想,有好幾種等待方式 1.老王用水壺煮水,並且站在那裡,不管水開沒開,每隔一定時間看看水開了沒。-同步阻塞
NIO學習筆記,從Linux IO演化模型到Netty—— 究竟如何理解同步、非同步、阻塞、非阻塞
我的觀點 首先,分開各自理解。 1. 同步:描述兩個(或者多個)個體之間的協調關係。 比如,單執行緒中,methodA呼叫了methodB,methodB返回後,methodA才往下執行,那麼稱A同步呼叫了B。 比如,多執行緒中,執行緒1訪問完某個資源,才到執行緒2訪問。 同步在一定的 互斥基礎上,強調的是有
阻塞、非阻塞,同步、異步總結
非阻塞 阻塞 同步 異步 總結 阻塞、非阻塞 主要作用在調用方或請求方,如果調用方或請求方是一直等著不幹其它任何事情,就是阻塞方式,如果調用方或請求方在請求之後一邊等待一邊去做其它事情,這種方式則為非阻塞方式。 同步、異步 同步、異步是調用或請求機制,主要看被調用方或被請求方對結果的處理,
同步、非同步、阻塞、非阻塞、並行、併發、共享資源的同步
同步阻塞呼叫:得不到結果不返回,執行緒進入阻塞態等待。 同步非阻塞呼叫:得不到結果不返回,執行緒不阻塞一直在CPU執行。 非同步阻塞呼叫:去到別的執行緒,讓別的執行緒阻塞起來等待結果,自己不阻塞。 非同步非阻塞呼叫:去到別的執行緒,別的執行緒一直在執行,直到得出結果。
阻塞和非阻塞、同步和非同步
阻塞和非阻塞 阻塞呼叫是指呼叫結果返回之前,呼叫者會進入阻塞狀態等待。只有在得到結果之後才會返回。 非阻塞呼叫是指在不能立刻得到結果之前,該函式不會阻塞當前執行緒,而會立刻返回。 2.同步與非同步 同步和非同步關注的是訊息通訊機制 (synchronous c
同步和非同步_阻塞和非阻塞
阻塞和非阻塞 執行緒去請求資源時,遇到資源正在處理還未準備就緒的情況的兩種處理方式: 阻塞:執行緒等待該資源準備就緒。呼叫結果返回之前,當前執行緒會被掛起。 非阻塞:執行緒發現該資源正在處理,會去請求別的資源 同步和非同步 訪問資料的兩種機制: 同步:請求資料時,等