1. 程式人生 > >同步非同步,阻塞非阻塞 和nginx的IO模型

同步非同步,阻塞非阻塞 和nginx的IO模型

http://www.cnblogs.com/wxl-dede/p/5134636.html

總結:一個IO操作基本包括兩個階段:
(1)等待資料準備就緒


(2)從核心向程序複製資料
如果是:
同步阻塞:那麼會一直阻塞下去。資料沒有就緒,那麼需要等待,拷貝資料也需要等待。
同步非阻塞:其實也需要一直等待,只不過方式不同。資料沒有準備好,那麼需要輪詢,這裡衍生了像I/O複用這樣更高效率的IO手段。拷貝資料需要
等待。
非同步:只需要處理頭尾,中間無需等待。

相關推薦

同步非同步,阻塞阻塞 nginx的IO模型

http://www.cnblogs.com/wxl-dede/p/5134636.html 總結:一個IO操作基本包括兩個階段: (1)等待資料準備就緒 (2)從核心向程序複製資料 如果是: 同步阻塞:那麼會一直阻塞下去。資料沒有就緒,那麼需要等待,拷貝資料也需要等待。

同步非同步阻塞阻塞

今天突然看到同步非同步和阻塞非阻塞的問題,一度陷入迷茫,經過我努力的汲取知識,在這裡說下我的理解。 同步非同步:可以理解成這是一種行為。 阻塞非阻塞:可以理解成這是一種狀態。 舉一個我看到的很不錯的例子: 《張大爺燒水》 話說張大爺有兩隻壺,一隻是普通的燒水壺,一隻是有響笛的

Qt理解同步/非同步阻塞/阻塞的區別

同步、非同步: 概念:訊息的通知機制解釋:涉及到IO通知機制;所謂同步,就是發起呼叫後,被呼叫者處理訊息,必須等處理完才直接返回結果,沒處理完之前是不返回的,呼叫者主動等待結果;所謂非同步,就是發起呼叫後,被呼叫者直接返回,但是並沒有返回結果,等處理完訊息後,通過狀態、通知或者回調函式來通知呼叫者,呼叫者被

理解同步/非同步阻塞/阻塞

本文記錄了本人在複習網路程式設計的過程中,關於同步/非同步,阻塞/非阻塞這幾個重要概念的理解。特舉了幾個通俗易懂的例子來幫助理解和記憶,如果理解有誤,歡迎各位指正。 如果定義很難看懂,可以先看底下的例子,再返回來看看這些定義,會好理解很多。 同步和非同步 同步和

深入瞭解幾種IO模型阻塞阻塞同步非同步

一般來說,Linux下系統IO主要就是通過以下幾個函式open(),close(),read(),write(),send(),recv(),lseek(),今天就以recv()為例來介紹下IO模型中的同步非同步,阻塞非阻塞的區別。先說阻塞與非阻塞的區別,recv()函式預設

Windows I/O模型同步/非同步阻塞/阻塞

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

java 同步/非同步IO阻塞/阻塞IO 關係概念解析

I/O的模型 首先要宣告的一點一定要把同步/非同步 阻塞/非阻塞 以及I/O這三者的概念區別開來,同步大部分是阻塞 的,非同步大部分是非阻塞的,但是它們之間並沒有必然的因果關係 同步與非同步 兩者產生需要有個前提——是否有多個任務或事件發生,只有滿足

簡明網路I/O模型---同步非同步阻塞阻塞之惑

網路I/O模型 人多了,就會有問題。web剛出現的時候,光顧的人很少。近年來網路應用規模逐漸擴大,應用的架構也需要隨之改變。C10k的問題,讓工程師們需要思考服務的效能與應用的併發能力。 網路應用需要處理的無非就是兩大類問題,網路I/O,資料計算。相對於後者,網路I/O的延

IO模型介紹以及同步非同步阻塞阻塞的區別

先說一下幾個單詞。 阻塞:使用者程序訪問資料時,如果未完成IO,等待IO操作完成或者進行系統呼叫來判斷IO是否完成 非阻塞:使用者程序訪問資料時,會馬上返回一個狀態值,無論是否完成 同步:使用者程序發起IO(就緒判斷)後,輪詢核心狀態 非同步:使用者程序發起IO後,可

I/O 模型阻塞阻塞同步非同步

一個IO操作,需要2步。 以read為例,  read --> sys_Read --> 驅動中的buffer資料 OR 網路中的udp/tcp報文 等等 同步/非同步 是否阻塞在第二步。 也就是 sys_Read -->

linux下的 I/O 模型同步/非同步阻塞/阻塞介紹

同步/非同步,阻塞/非阻塞 一提到網路程式設計中的 I/O 模型,總會涉及到這幾個概念,但是這幾個名詞又容易混淆,於是我想總結一下。 我們先看一下在《UNIX網路程式設計:卷一》中講到的5中 UNIX 下的 I/O 模型,分別是 阻塞式 I/O 非阻塞式

網路I/O模型---同步非同步阻塞阻塞之惑

網路I/O模型---同步非同步阻塞非阻塞之惑 網路I/O模型 人多了,就會有問題。web剛出現的時候,光顧的人很少。近年來網路應用規模逐漸擴大,應用的架構也需要隨之改變。C10k的問題,讓工程師們需要思考服務的效能與應用的併發能力。 網路應用需要處理的無非就是兩大類問題,網

同步非同步阻塞阻塞Reactor模式Proactor模式 (目前JAVA的NIO就屬於同步阻塞IO)

在高效能的 I/O 設計中,有兩個比較著名的模式 Reactor 和 Proactor 模式,其中 Reactor 模式用於同步 I/O ,而 Proactor 運用於非同步 I/O 操作。        在比較這兩個模式之前,我們首先的搞明白幾個概念,什麼是阻塞和非阻

同步非同步阻塞阻塞到5種IO模型

同步非同步、阻塞非阻塞 同步與非同步 同步與非同步在不同的場景下有不同的概念,在IO模型中的同步非同步,主要區別在當任務A呼叫任務B的過程中,程序A是否繼續進行。 如果A等待B的結果,則為同步 如果A不等待B的結果,則為非同步 同步狀態下任務A的

[轉]簡明網路I/O模型---同步非同步阻塞阻塞之惑

網路I/O模型 人多了,就會有問題。web剛出現的時候,光顧的人很少。近年來網路應用規模逐漸擴大,應用的架構也需要隨之改變。C10k的問題,讓工程師們需要思考服務的效能與應用的併發能力。 網路應用需要處理的無非就是兩大類問題,網路I/O,資料計算。相對於後者,網路I/O的延遲,給應用帶來的效能瓶頸大於

同步非同步 阻塞阻塞 Linux網路io模型

一,概念描述同步與非同步#首先來解釋同步和非同步的概念,這兩個概念與訊息的通知機制有關。也就是同步與非同步主要是從訊息通知機制角度來說的。概念描述:所謂同步就是一個任務的完成需要依賴另外一個任務時,只有等待被依賴的任務完成後,依賴的任務才能算完成,這是一種可靠的任務序列。要麼

網絡I/O模型---同步異步阻塞阻塞之惑

本質 結果 順序執行 其中 ges package 混合 signal 同時 網絡I/O模型 人多了,就會有問題。web剛出現的時候,光顧的人很少。近年來網絡應用規模逐漸擴大,應用的架構也需要隨之改變。C10k的問題,讓工程師們需要思考服務的性能與應用的並發能力。 網絡應

同步非同步阻塞阻塞區別聯絡

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

Java NIO/BIO 淺談 同步/非同步阻塞/阻塞

在我們瞭解Java NIO/BIO的網路通訊之前,我們先了解一下常用的阻塞/非阻塞模型以及同步/非同步的概念 一、阻塞和非阻塞 從簡單的開始,我們以經典的讀取檔案的模型舉例。(對作業系統而言,所有的輸入輸出裝置都被抽象成檔案。)在發起讀取檔案的請求時,應用層會呼叫系統核心的I/O介面。

Python併發程式設計之同步\非同步and阻塞\非阻塞

一、什麼是程序 程序: 正在進行的一個過程或者說一個任務。而負責執行任務則是cpu。 程序和程式的區別: 程式僅僅只是一堆程式碼而已,而程序指的是程式的執行過程。 需要強調的是:同一個程式執行兩次,那也是兩個程序,比如開啟暴風影音,雖然都是同一個軟體,但是一個可以播郭德綱,一個可以播高曉鬆。 二、並行