网络编程之NIO
2019-06-03 10:05:43 0 举报
AI智能生成
网络编程之NIO学习笔记
作者其他创作
大纲/内容
NIO网络编程模型
NIO(非阻塞IO,新的IO,从jdk 1.4开始)
编程模型:解决把动物装进冰箱的一个通用解决方法。
BIO网络模型
BIO缺点
阻塞式I/O模型【罪恶源头】
弹性伸缩能力差【客户端和服务器是一对一的关系】
多线程耗资源
NIO网络模型
NIO改进
非阻塞I/O模型
弹性伸缩能力强
服务器端单线程节省资源
NIO网络编程详解
NIO核心
通道Channel
特性
双向性【可读可写】
非阻塞性
操作唯一性【对Buffer进行操作】
实现
文件类:FileChannel
DatagramChannel
TCP类:ServerSocketChannel/SocketChannel
用法
缓冲器Buffer
简介
作用:读写Channel中数据
本质:一块内存区域
属性
Capacity容量
Position位置
Limit上限
Mark标记
使用
选择器/多路复用器 selector
简介
作用:I/O就绪选择
地位:NIO网络编程模型基础
用法
选择键 SelectionKey
四种就绪常量:Connect Accept Read Write
有价值的属性:SelectionKey集合
NIO网络编程实战
步骤
NIO网络编程缺陷
NIO类库和API繁杂
可靠性能力补齐,解决bug到头秃,工作量和难度都大
Linux下Selector 空轮询 导致CPU 100%的bug
0 条评论
下一页