又大又粗又猛免费视频久久_国产理论在线播放_久久男人av资源网站免费软件_99国产精品无码

Java網(wǎng)絡編程(JAVA網(wǎng)絡編程面試題)

傳統(tǒng)的TCP和UDP通訊都是同步阻塞式IO(BIO),I指輸入流,O指輸出流,阻塞體現(xiàn)在通信的雙方接收和發(fā)送信息的速率不一樣,從而導致快的一方一直在等待慢的一方,不能進行下一步動作,同步體現(xiàn)在一直在等待對方響應

NIO即同步非阻塞式IO,JDK4提出來的,主要有三大組件:Buffer(這個BIO也有,做數(shù)據(jù)緩沖,例如ReaderBuffer),Channel(這個類似BIO的輸出輸入流,不同點在于,channel是全雙工的,可以雙向通信),Selector(多路選擇器,實現(xiàn)非阻塞IO的關鍵),服務端建立ServerSocketChannel后,將其綁定在Selector上,Selector對ServerSocketChannel管道上接入的客戶端連接進行輪詢監(jiān)聽,當發(fā)生相應的Selectionkey事件后,進行相應的讀寫操作,這種情況下,是一個服務端管道對應多個客戶端管道,中間用一個選擇器對多個客戶端管道的進行處理,當哪個管道有事件發(fā)生的時候,就拿這個管道與服務端管道進行對接通信,這樣就不用一直等著某個客戶端了,實現(xiàn)了非阻塞

AIO即異步IO,JDK7提出來的,采用回調(diào)方法進行讀寫操作,簡單講就是,消息給你發(fā)過去就不管了,你啥時候回我,調(diào)用我給你的方法(回調(diào)方法)就行了,建立管道連接方式和BIO/NIO差不多,核心類是Completionhandler,用于回調(diào)操作

Netty是一個非阻塞,基于異步事件驅(qū)動的網(wǎng)絡通信框架,簡單講是NIO和AIO的組合體,利用回調(diào)函數(shù)(主要是各種handler類)實現(xiàn)了異步(這點像AIO),利用事件分類做了業(yè)務驅(qū)動處理,例如對處理類分成Inbound和OutBound兩種類型,通信套路跟上述通信方式大同小異,都是建立管道進行通信

相關新聞

聯(lián)系我們
聯(lián)系我們
在線咨詢
分享本頁
返回頂部