你如果 , 缓缓把手举起来 , 举到顶 , 再突然张开五指 , 那恭喜你 , 你刚刚给自己放了个烟花 。模块介绍
netty-bio
:阻塞型
网络通信demo 。
netty-nio
: 引入channel(通道)、buffer(缓冲区)、selector(选择器)的概念 , 采用事件驱动的方式
, 使用单个线程就可以监听多个客户端通道 ,改进bio模式下线程阻塞等待造成的资源浪费
。
netty-demo
: Netty小demo,认识Netty初体验 。
netty-groupchat
: 使用Netty编写一个群聊系统 。
netty-http
: Netty的HTTP调用demo 。
netty-bytebuf
: Netty缓冲区使用demo 。
netty-decoder
: Netty编解码 , handler调用链使用示例 。
netty-idlestate
: Netty心跳包使用示例 。
netty-sticking
: 自定义协议与handler , 解决TCP传输粘包与拆包问题 。
netty-rpc
: 使用Netty自定义实现RPC
通信 。
netty-bio
模块模拟测试采用socket的bio
方式进行网络通信 。blocking io
:同步并阻塞
, 服务器实现模式为一个连接一个线程 , 即客户端有连接请求时服务器就需要启动一个线程进行处理 , 如果这个连接不做任何事情就会进入阻塞等待状态 , 造成不必要的线程开销 。适用于
连接数据小且连接固定
的系统架构 。架构示意图:

文章插图
netty-nio
模块non-blocking io
:同步非阻塞
, 在bio
的架构上进行改进 , 引入channel(通道)、buffer(缓冲区)、selector(选择器)的概念 , 采用事件驱动的方式 , 使用单个线程就可以监听多个客户端通道 , 改进bio
模式下线程阻塞等待造成的资源浪费 。架构示意图:

文章插图
关键:select会根据不同的事件 , 在各个channel通道上进行切换 。
缓冲区buffer本质上是一个可以读写数据(关键)的内存块 ,
nio
的读取与写入数据都必须是经过buffer的 。通道channel把通道看做流、把通道看做流、把通道看做流 , 重要的事情说三遍 , 会很好理解 。
nio
引入的通道类似bio
中流的概念 , 不同之处在于:- 通道可以同时进行读写操作 , 而流只能读或者写
- 通道可以实现异步读写数据
- 通道可以从缓冲区读数据 , 也可以写数据到缓冲区(双向的概念)
NIOFileOper01
: 本地文件写数据使用ByteBuffer
与FileChannel
, 将“hello,李嘉图”NIOFileOper01.txt
文件中 。NIOFileOper02
: 本地文件读数据使用ByteBuffer
(缓冲) 和 FileChannel
(通道) , 将 NIOFileOper01.txt
中的数据读入到程序 , 并显示在控制台屏幕NIOFileOper03
: 使用一个Buffer完成文件读取使用 FileChannel
(通道) 和 方法 read , write , 完成文件的拷贝NIOFileCopy
:拷贝文件 transferFrom
方法使用
经验总结扩展阅读
- 高三物理学习方法技巧是什么 有哪些窍门
- 给朋友的腊八节祝福语
- 腊八节经典祝福文案15篇
- 腊八节祝福语集合
- 腊八节最暖心祝福语2023
- 国庆节姐姐祝福语2023
- 国庆节祝福姐姐的祝福语
- 银行国庆节短信祝福
- 2023国庆节祝福语
- 2023祝朋友七夕快乐的祝福语