哈嘍!大家好,我是猿之生活,一位熱愛分享的程序員,希望本文章對(duì)你我都有幫助。
同步和異步描述的是消息通信的機(jī)制。
阻塞和非阻塞描述的是程序在等待調(diào)用結(jié)果(消息,返回值)時(shí)的狀態(tài)。
同步阻塞式IO,數(shù)據(jù)的讀取寫入必須在一個(gè)線成內(nèi)等待并完成,如果時(shí)間處理時(shí)間長(zhǎng),則阻塞,直至完成。
BIO通信模型:一請(qǐng)求一應(yīng)答
用戶線程進(jìn)行 read (讀)操作時(shí),需要等待執(zhí)行操作,此時(shí)線程是被阻塞的,無(wú)法執(zhí)行其他操作。
同步非阻塞式IO,關(guān)采用了事件驅(qū)動(dòng)的思想,主要來(lái)實(shí)現(xiàn)了一個(gè)多路轉(zhuǎn)換器。NIO支持面向緩沖。
NIO 組件包括Buffer(緩沖區(qū))、Channel(管道、通道)、Selector(選擇器,多路復(fù)用器)。
只需要一個(gè)線程就可以處理來(lái)自多個(gè)客戶端的IO事件。
I/O是Input輸入/Output輸出的簡(jiǎn)稱,通常指數(shù)據(jù)在計(jì)算機(jī)硬件或其他周邊設(shè)備之間的輸入和輸出。
AIO 用來(lái)解決數(shù)據(jù)復(fù)制階段的阻塞問題。
三者總結(jié)