-
?? ? ?? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ??NIO 網(wǎng)絡(luò)編程模型
1.注冊(cè)建立連接事件(Selector)
2.客戶端發(fā)起連接請(qǐng)求
3.服務(wù)端接收請(qǐng)求,啟動(dòng)建立連接事件處理器(Acceptor Handler)
4.Acceptor Handler創(chuàng)建與客戶端的連接
5.Acceptor Handler響應(yīng)客戶端建立連接請(qǐng)求
6.Acceptor Handler向Selector注冊(cè)連接可讀事件
7.Client發(fā)起請(qǐng)求
8.Selector啟動(dòng)連接讀寫處理器(Read&Write Handler)
9.Read&Write Handler處理與Client的讀寫業(yè)務(wù)
10.Read&Write Handler響應(yīng)Client的請(qǐng)求
11.Read&Write Handler向Selector注冊(cè)連接可讀事件查看全部 -
模型:對(duì)事物共性的抽象
編輯模型:對(duì)編輯共性的抽象查看全部 -
么意了沒(méi)睡去你不知道嗎啡查看全部
-
發(fā)現(xiàn)的很很多次交
查看全部 -
筆記筆記~記筆記。。。
查看全部 -
總結(jié)
查看全部 -
筆記2
查看全部 -
biji1
查看全部 -
First
查看全部 -
First
查看全部 -
NIO網(wǎng)絡(luò)模型圖
查看全部 -
接收服務(wù)器響應(yīng)
查看全部 -
客戶端編寫:
1 連接服務(wù) - 一行代碼就夠而且很直觀,沒(méi)有什么函數(shù)式接口嵌套結(jié)構(gòu)
? ? SocketChannel.open(new InetSocketAdress(.... ))?
2 發(fā)送數(shù)據(jù) - 也很簡(jiǎn)單直觀,一行代碼
? ? 這里他用了終端輸入? Scanner 作為要發(fā)送數(shù)據(jù)的來(lái)源,這個(gè)也可以學(xué)習(xí)下,如果要急速開發(fā),甚至連網(wǎng)頁(yè)界面也可以省略
? ? socketChannel.write(....? )?
3 接收響應(yīng) (這一節(jié)里沒(méi)有,下節(jié)課)
查看全部 -
NIO編程實(shí)現(xiàn)步驟
查看全部 -
3.Selector簡(jiǎn)介
1)作用:IO就緒選擇
2)地位:NIO網(wǎng)絡(luò)變成的基礎(chǔ)
3)代碼片段:
????
4)SelectionKey簡(jiǎn)介
?
查看全部 -
2,Buffer簡(jiǎn)介
1)作用:讀寫Channel中的數(shù)據(jù)
2)本質(zhì):一塊內(nèi)存區(qū)域
3)Buffer的屬性:
????????Capacity:容量
????????Position:位置
????????Limit:上限
????????Mark:標(biāo)記
4)AIP:
????
查看全部 -
NIO核心
Channel :通道
特點(diǎn):
????????1)雙向性(通道和流類似,但是流是單向的,而通道多雙向的,既可以讀也可以寫)
????????2)非阻塞性
????????3)操作唯一性(NIO中,對(duì)Channel的操作具有唯一性,基于數(shù)據(jù)塊的一個(gè)操作,通過(guò)buffer來(lái)操作)
?? ??????常用的實(shí)現(xiàn)類:
????????1)文件類:FileChannel
????????2)UDP類:DatagramChannel
????????3)TCP類:ServerSocketChannel / SocketChannel
????????socket回顧:
????????
????????Channel的使用:
????????
Buffer: 緩沖區(qū)
Selector:選擇器 / 多路復(fù)用器
查看全部 -
NIO模型的改進(jìn)
非阻塞式IO模型
彈性伸縮能力強(qiáng)
單線程更加的節(jié)省資源
查看全部 -
NIO模型
查看全部 -
NIO網(wǎng)絡(luò)模型
基于非阻塞IO的模型
????????課程給出了一個(gè)思路:維護(hù)一個(gè)set集合,里面存放客戶端發(fā)過(guò)來(lái)的請(qǐng)求,不斷的去循環(huán)這個(gè)set,如果發(fā)現(xiàn)read有數(shù)據(jù)返回就交給一個(gè)handler去處理,否則就不處理當(dāng)前這個(gè)請(qǐng)求,繼續(xù)去循環(huán)下一個(gè)
查看全部 -
BIO模型的缺點(diǎn)
阻塞式IO模型
彈性伸縮能力差:一個(gè)客戶端對(duì)于一個(gè)服務(wù)端的業(yè)務(wù)線程,線程數(shù)和客戶端是1:1的關(guān)系
多線程消耗資源
查看全部 -
BIO網(wǎng)絡(luò)模型
BIO:阻塞IO ,在讀寫過(guò)程中會(huì)出現(xiàn)阻塞
如果客戶端沒(méi)有進(jìn)一步的響應(yīng),此時(shí)服務(wù)端會(huì)處于長(zhǎng)時(shí)間的等待狀態(tài)。
如果服務(wù)端有大量的線程處于等待狀態(tài),顯然會(huì)對(duì)服務(wù)端的性能造成影響。
查看全部 -
NIO網(wǎng)絡(luò)編程模型
NIO簡(jiǎn)介
編程模型
查看全部 -
前置知識(shí):
JAVA基礎(chǔ)知識(shí)
BIO網(wǎng)絡(luò)編程基礎(chǔ)知識(shí)
多線程基礎(chǔ)知識(shí)
查看全部 -
NIO網(wǎng)絡(luò)編程模型
NIO網(wǎng)絡(luò)編程詳解
NIO網(wǎng)絡(luò)編程實(shí)戰(zhàn)
NIO網(wǎng)絡(luò)編程的缺陷
查看全部
舉報(bào)