BIO NIO AIO三種IO模式概述

2021-10-22 16:59:34 字數 479 閱讀 4454

同步:請求方發出請求後,請求方需要自己去被請求方檢視結果

非同步:請求方發出請求後,有結果後被請求方會主動通知請求方

阻塞:請求方發出請求後,一直等待結果,結果出來前不做別的事

非阻塞:請求方發出請求後,不用等待,直接可以做別的事

常見情景:

同步阻塞(bio):請求方發出請求後,等待(阻塞)被請求方,拿到結果(同步)

同步非阻塞(nio):請求方發出請求後,可以先做別的事(非阻塞),等一段時間(輪詢)詢問(同步)被請求方有沒有結果

非同步非阻塞(aio):請求方發出請求後,直接去做別的事(非阻塞),被請求方結果出來後通過簡訊之類的方式,主動通知請求方結果

標準I O的三種緩衝

最近,有幾個同學讓我看了乙個程式,後來發現問題都是出在使用printf 函式進行輸出時的緩衝模式造成的。比如這樣的程式 include int main 程式並不是很長,但是就這樣的程式出現了乙個問題 為什麼進入死迴圈之後,並沒有輸出 1234 這個與我們預想的完全不一樣,還以為是自己的程式寫錯了,...

I O口的三種結構

準雙向io 雙嚮導通,結構和開漏類似,內部電阻上拉,可以輸入輸出高低電平。開漏輸出 輸出端相當於三極體的集電極.只能輸出低電平,要得到高電平狀態需要上拉電阻才行.適合於做電流型的驅動,其吸收電流的能力相對強 一般20ma以內 不輸出電壓,低電平時接地,高電平時不接地。如果外接上拉電阻,則在輸出高電平...

IO復用的三種模型

阻塞式i o 所有套接字預設 非阻塞i o i o復用 select,poll,epoll 訊號驅動式 sigio 核心在描述符就緒時傳送sigio通知程序 非同步i o posix的aio 系列函式 不會阻塞。核心完成後整個操作,通知程序。同步i o 真正的io操作程序會阻塞,直到i o程式結束 ...