漳州市网站建设,网站建设模块需求,类似凡科建站的平台,网络营销和传统营销的区别和联系一#xff1a;什么是NIO?
二#xff1a;NIO三大组件
1. channel channel 有一点类似于 stream#xff0c;它就是读写数据的双向通道#xff0c;可以从 channel 将数据读入 buffer#xff0c;也可以将 buffer 的数据写入 channel#xff0c;而之前的 stream 要么是输入…一什么是NIO?
二NIO三大组件
1. channel channel 有一点类似于 stream它就是读写数据的双向通道可以从 channel 将数据读入 buffer也可以将 buffer 的数据写入 channel而之前的 stream 要么是输入要么是输出channel 比 stream 更为底层
2. Buffer 2.1 ByteBuffer 正确使用姿势: 1向 buffer 写入数据例如调用 channel.read(buffer) 2调用 flip() 切换至读模式 3从 buffer 读取数据例如调用 buffer.get() 4调用 clear() 或 compact() 切换至写模式 5重复 1~4 步骤
2.2 ByteBuffer 结构 capacity position limit 写模式下position 是写入位置limit 等于容量下图表示写入了 4 个字节后的状态 读模式下position 切换为读取位置limit 切换为读取限制
3. Selector selector 的作用就是配合一个线程来管理多个 channel获取这些 channel 上发生的事件这些 channel 工作在非阻塞模式下不会让线程吊死在一个 channel 上。适合连接数特别多但流量低的场景low traffic
三channel与selector的关系
selector 就可以监控多个 channel 的事件