阻塞、非阻塞與同步、非同步IO的區別
轉自知乎的某條評論……@愚抄
今天看文章發現評論中有人把IO的幾個概念講的通俗易懂,拿來和大家分享一下:
關鍵詞
- 阻塞同步IO
- 阻塞非同步IO
- 非阻塞同步IO
- 非阻塞非同步IO
段子如下:
老張愛喝茶,廢話不說,煮開水。
出場人物:老張,水壺兩把(普通水壺,簡稱水壺;會響的水壺,簡稱響水壺)。
1. 老張把水壺放到火上,立等水開。(同步阻塞)老張覺得自己有點傻
2. 老張把水壺放到火上,去客廳看電視,時不時去廚房看看水開沒有。(同步非阻塞)老張還是覺得自己有點傻,於是變高端了,買了把會響笛的那種水壺。水開之後,能大聲發出嘀~~~~的噪音。
3. 老張把響水壺放到火上,立等水開。(非同步阻塞)老張覺得這樣傻等意義不大
4. 老張把響水壺放到火上,去客廳看電視,水壺響之前不再去看它了,響了再去拿壺。(非同步非阻塞)老張覺得自己聰明瞭。
總結
所謂同步非同步,只是對於水壺而言。普通水壺,同步;響水壺,非同步。雖然都能幹活,但響水壺可以在自己完工之後,提示老張水開了。這是普通水壺所不能及的。同步只能讓呼叫者去輪詢自己(情況2中),造成老張效率的低下。所謂阻塞非阻塞,僅僅對於老張而言。立等的老張,阻塞;看電視的老張,非阻塞。情況1和情況3中老張就是阻塞的,媳婦喊他都不知道。雖然3中響水壺是非同步的,可對於立等的老張沒有太大的意義。所以一般非同步是配合非阻塞使用的,這樣才能發揮非同步的效用。
【總監】十二春秋之,[email protected];
【Master】zelo,[email protected]
【產品設計】流浪貓,[email protected];【體驗設計】兜兜,[email protected];
【iOS】淘碼小工,[email protected];iMcG33K,[email protected];
【Android】人猿居士,[email protected];思路的頓悟,[email protected];
【Java】首席工程師MR_W,[email protected];【測試】土鏡問道,[email protected]
【資料】fox009521,[email protected];【安全】保密,你懂的。
相關推薦
Linux系統時間和RTC時間、時鐘設定與同步、ntpd服務/ntpdate
Linux有兩個時間,一個是系統時間,一個是RTC時間(也叫硬體時間)。Linux系統啟動時,會自動獲取硬體時間,設定為系統時間。一、查詢系統時間:查詢系統時間:date查詢/設定硬體時間: hwclock –r 顯示硬體時鐘與日期 hw
同步、非同步與阻塞、非阻塞
UNIX下可用的I/O模型: 阻塞式I/O; 非阻塞式I/O; I/O複用(select,poll,epoll…); 訊號驅動式I/O(SIGIO); 非同步I/O(POSIX的aio_系列函式); 阻塞式I/O模型:預設情況下,所有套接字都是阻
同步IO、非同步IO、阻塞IO、非阻塞IO之間的聯絡與區別
POSIX 同步IO、非同步IO、阻塞IO、非阻塞IO,這幾個詞常見於各種各樣的與網路相關的文章之中,往往不同上下文中它們的意思是不一樣的,以致於我在很長一段時間對此感到困惑,所以想寫一篇文章整理一下。 POSIX(可移植作業系統介面)把同步IO操作定義為導致程序阻塞直到
同步、非同步與阻塞、非阻塞的辨別理解
所謂同步非同步,只是對於水壺而言,即應用程式。 雖然都能幹活,但響水壺可以在自己完工之後,提示老張水開了。這是普通水壺所不能及的。 同步只能讓呼叫者去輪詢,造成老張效率的低下。 所謂阻塞非阻塞,僅僅對於老張而言。 立等的老張,阻塞;看電視的老張,非阻塞。 情況1和情況3中老張就是阻塞的。雖然3中響水
阻塞、非阻塞與同步、非同步IO的區別
轉自知乎的某條評論……@愚抄 今天看文章發現評論中有人把IO的幾個概念講的通俗易懂,拿來和大家分享一下: 關鍵詞 阻塞同步IO 阻塞非同步IO 非阻塞同步IO 非阻塞非同步IO 段子如下: 老張愛喝茶,廢話不說,煮開水。 出場人物:老張,水壺
關於同步、非同步與阻塞、非阻塞的理解
1、前言 前一段時間出去面試,被問到同步、非同步與阻塞、非阻塞的區別。我一時半會沒有想出來,作為一個工作三年的人來說,實在很慚愧。我當時理解同步、非同步屬於兩個程序中間的協作關係,例如使用瀏覽器訪問一個網站,需要多次請求服務端,才能載入完整個頁面的內容。同步的操作如
同步、異步與阻塞、非阻塞
架構 客戶端 多路復用 錯誤 同步非阻塞 函數 鏈接 調用 同步阻塞 同步阻塞,用戶空間的應用程序執行一個系統調用,這意味著應用程序會一直阻塞,直到系統調用完成為止(數據傳輸完成或者發生錯誤)。 同步非阻塞,設備以非阻塞形式打開,這意味著 io 操作不會立刻完成,需要應用程
同步、非同步、阻塞、非阻塞、並行、併發、共享資源的同步
同步阻塞呼叫:得不到結果不返回,執行緒進入阻塞態等待。 同步非阻塞呼叫:得不到結果不返回,執行緒不阻塞一直在CPU執行。 非同步阻塞呼叫:去到別的執行緒,讓別的執行緒阻塞起來等待結果,自己不阻塞。 非同步非阻塞呼叫:去到別的執行緒,別的執行緒一直在執行,直到得出結果。
阻塞和非阻塞、同步和非同步
阻塞和非阻塞 阻塞呼叫是指呼叫結果返回之前,呼叫者會進入阻塞狀態等待。只有在得到結果之後才會返回。 非阻塞呼叫是指在不能立刻得到結果之前,該函式不會阻塞當前執行緒,而會立刻返回。 2.同步與非同步 同步和非同步關注的是訊息通訊機制 (synchronous c
對.NET同步、非同步、阻塞、非阻塞的理解。
老張愛喝茶,廢話不說,煮開水。 出場人物:老張,水壺兩把(普通水壺,簡稱水壺;會響的水壺,簡稱響水壺)。 1 老張把水壺放到火上,立等水開。(同步阻塞) 老張覺得自己有點傻 2 老張把水壺放到火上,去客廳看電視,時不時去廚房看看水開沒有。(同步非阻塞) 老張還是覺得自己有點傻,於是
那些年讓人迷惑的同步、非同步、阻塞、非阻塞
在IT圈混飯吃,不管你用什麼程式語言、從事前端還是後端,阻塞、非阻塞、非同步、同步這些概念,都需要清晰地掌握,否則,怎麼與面試官談笑風生(chui niu pi)?但是,掌握這些概念又不是非常容易,尤其對非科班出身的,更加困難。本文試圖給出一個清晰簡明但不失深刻的介紹,希望對大家有所
IO模型淺析-阻塞、非阻塞、IO複用、訊號驅動、非同步、同步IO
segmentfault 對應博文頁面 https://segmentfault.com/a/1190000016359495 最近看到OVS使用者態的程式碼,在接收核心態資訊的時候,使用了Epoll多路複用機制,對其十分不解,於是從網上找了一些資料,學習了一下《UNIX網路變成卷1:套接字聯網API》這本書
阻塞IO、非阻塞IO、同步IO,非同步IO
再說一下IO發生時涉及的物件和步驟。對於一個network IO (這裡我們以read舉例),它會涉及到兩個系統物件,一個是呼叫這個IO的process (or thread),另一個就是系統核心(kernel)。當一個read操作發生時,該操作會經歷兩個階段: #1)
【高併發程式設計】再談同步、非同步、阻塞、非阻塞
同步、非同步、阻塞、非阻塞的概念一直是計算機學科中很重要的概念,而這種細微的差別常常被大家混淆,我自己在過一段時間後也需要複習。今天再次翻出這個概念,仍然覺得不夠清晰,今天再次深入瞭解了這四大天王。 以前轉過一篇部落格:http://blog.csdn.net/xxxxxx9
python-同步和非同步、阻塞和非阻塞、序列和並行、並行和併發、密集型、執行緒和程序的相關概念
1. 同步和非同步 關注的是訊息的通訊機制,描述的是一種行為方式,是多個任務之間的關係。 ① 同步: 呼叫者主動等待被呼叫方返回結果,在沒有返回結果之前,就一直專職等待。 千萬不要把計算機中“同步”理解成“同時執行”。 ② 非同步:呼叫者傳送請求請求,不會專職等待
併發程式設計、並行、多執行緒、鎖、同步、非同步、多執行緒、單執行緒、阻塞io、非阻塞io
一、 cpu的每一個核在同一時間下,只能執行一個執行緒,就是單核同一時間只能執行一個執行緒 而cpu可以不停的切換,這樣就導致使用者感覺可以執行多個執行緒,這是併發,而不是並行 併發和並行 你吃飯吃到一半,電話來了,你一直到吃完了以後才去接,這就說明你不支援併發也不支
同步、非同步、阻塞、非阻塞
使用者空間和核心空間 使用者空間:使用者空間是常規程序所在的區域,是非特權的空間,在該空間執行的程式碼不能訪問硬體裝置 核心空間:是作業系統所在的區域,是特權空間,能與裝置控制器通訊,控制著使用者區域程序的執行狀態,最重要的是所有的I/O都直接或間接的通過核心
同步、非同步(@Async);阻塞、非阻塞
1.同步、非同步 同步方法呼叫一旦開始,呼叫者必須等到方法呼叫返回後,才能繼續後續的行為。 非同步方法呼叫更像一個訊息傳遞,一旦開始,方法呼叫就會立即返回,呼叫者就可以繼續後續的操作。而,非同步方法通常會在另外一個執行緒中,“真實”地執行著。整個過程
【java】同步、非同步、阻塞、非阻塞
理解同步與非同步 同步是指:傳送方發出資料後,等接收方發回響應以後才發下一個數據包的通訊方式。 非同步是指:傳送方發出資料後,不等接收方發回響應,接著傳送下個數據包的通訊方式。 舉個例子:普通B/S模式(同步) AJAX技術(非同步) 同步:提交請求->
【Socket程式設計】篇五之IO同步、非同步、阻塞、非阻塞
參考Richard Stevens的“UNIX® Network Programming Volume 1, Third Edition: The Sockets Networking ”,6.2