免费A级毛片无码专区网站-成人国产精品视频一区二区-啊 日出水了 用力乖乖在线-国产黑色丝袜在线观看下-天天操美女夜夜操美女-日韩网站在线观看中文字幕-AV高清hd片XXX国产-亚洲av中文字字幕乱码综合-搬开女人下面使劲插视频

Netty學(xué)習(xí)記錄-入門篇

你如果 , 緩緩把手舉起來 , 舉到頂 , 再突然張開五指 , 那恭喜你 , 你剛剛給自己放了個煙花 。
模塊介紹
  1. netty-bio: 阻塞型網(wǎng)絡(luò)通信demo 。
  2. netty-nio: 引入channel(通道)、buffer(緩沖區(qū))、selector(選擇器)的概念 , 采用事件驅(qū)動的方式 , 使用單個線程就可以監(jiān)聽多個客戶端通道 , 改進(jìn)bio模式下線程阻塞等待造成的資源浪費 。
  3. netty-demo: Netty小demo,認(rèn)識Netty初體驗 。
  4. netty-groupchat: 使用Netty編寫一個群聊系統(tǒng) 。
  5. netty-http: Netty的HTTP調(diào)用demo 。
  6. netty-bytebuf: Netty緩沖區(qū)使用demo 。
  7. netty-decoder: Netty編解碼 , handler調(diào)用鏈?zhǔn)褂檬纠?。
  8. netty-idlestate: Netty心跳包使用示例 。
  9. netty-sticking: 自定義協(xié)議與handler , 解決TCP傳輸粘包與拆包問題 。
  10. netty-rpc: 使用Netty自定義實現(xiàn)RPC通信 。
Demo地址:https://gitee.com/LHDAXIE/netty
netty-bio模塊模擬測試采用socket的bio方式進(jìn)行網(wǎng)絡(luò)通信 。
blocking io同步并阻塞 , 服務(wù)器實現(xiàn)模式為一個連接一個線程 , 即客戶端有連接請求時服務(wù)器就需要啟動一個線程進(jìn)行處理 , 如果這個連接不做任何事情就會進(jìn)入阻塞等待狀態(tài) , 造成不必要的線程開銷 。
適用于連接數(shù)據(jù)小且連接固定的系統(tǒng)架構(gòu) 。
架構(gòu)示意圖:
Netty學(xué)習(xí)記錄-入門篇

文章插圖
netty-nio模塊non-blocking io同步非阻塞 , 在bio的架構(gòu)上進(jìn)行改進(jìn) , 引入channel(通道)、buffer(緩沖區(qū))、selector(選擇器)的概念 , 采用事件驅(qū)動的方式 , 使用單個線程就可以監(jiān)聽多個客戶端通道 , 改進(jìn)bio模式下線程阻塞等待造成的資源浪費 。
架構(gòu)示意圖:
Netty學(xué)習(xí)記錄-入門篇

文章插圖
關(guān)鍵:select會根據(jù)不同的事件 , 在各個channel通道上進(jìn)行切換 。
緩沖區(qū)buffer本質(zhì)上是一個可以讀寫數(shù)據(jù)(關(guān)鍵)的內(nèi)存塊 , nio的讀取與寫入數(shù)據(jù)都必須是經(jīng)過buffer的 。
通道channel把通道看做流、把通道看做流、把通道看做流 , 重要的事情說三遍 , 會很好理解 。nio引入的通道類似bio中流的概念 , 不同之處在于:
  • 通道可以同時進(jìn)行讀寫操作 , 而流只能讀或者寫
  • 通道可以實現(xiàn)異步讀寫數(shù)據(jù)
  • 通道可以從緩沖區(qū)讀數(shù)據(jù) , 也可以寫數(shù)據(jù)到緩沖區(qū)(雙向的概念)
NIOFileOper01: 本地文件寫數(shù)據(jù)使用ByteBufferFileChannel , 將“hello,李嘉圖”NIOFileOper01.txt文件中 。
NIOFileOper02: 本地文件讀數(shù)據(jù)使用ByteBuffer(緩沖) 和 FileChannel(通道) ,  將 NIOFileOper01.txt中的數(shù)據(jù)讀入到程序 , 并顯示在控制臺屏幕
NIOFileOper03: 使用一個Buffer完成文件讀取使用 FileChannel(通道) 和 方法 read , write , 完成文件的拷貝
NIOFileCopy:拷貝文件 transferFrom 方法使用

經(jīng)驗總結(jié)擴(kuò)展閱讀