JAVA NIO学习笔记

1.BIO网络模型

1.1 基于阻塞IO实现的。

1.2 BIO网络模型缺点

  (1)阻塞式I/O模型

  (2)弹性伸缩能力差

  (3)多线程耗资源

2. NIO网络模型

 2.1  基于非阻塞I/O实现的。

2.2 NIO网络模型的优点

  (1)非阻塞式I/O模型

  (2)弹性伸缩能力强

  (3)单线程节省资源

3. NIO网络编程详解

3.1 NIO核心类之Channel

3.1.1 Channel特性:

(1)双向性

(2)非阻塞性

(3)操作唯一性

3.1.2 Channel实现

(1)文件类:FileChannel

(2)UDP类:DatagramChannel

(3)TCP类:ServerSocketChannel / SocketChannel.

3.2 NIO核心类之Buffer

3.2.1 Buffer简介

作用:读写Channel中数据

本质:一块内存区域

3.2.2 Buffer属性

Capacity:容量

Position:位置

Limit:上限

Mark:标记

3.2.3 Buffer使用

3.3 NIO核心类之Selector

3.3.1 Selector简介

作用:I/O就绪选择

地位:NIO网络编程的基础

3.3.2 Selector使用

3.4 NIO编程实现步骤

(1)创建Selector

(2)创建ServerSocketChanner,并绑定监听端口

(3)将Channel设置为非阻塞模式

(4)将Channel注册到Selector上,监听连接事件

(5)循环调用Selector的select方法,检测就绪情况

(6)调用selectedKeys方法获取就绪channel集合

(7)判断就绪事件种类,调用业务处理方法

(8)根据业务需要决定是否再次注册监听事件,重复执行第三步操作。

4 NIO网络编程缺陷

(1)麻烦:NIO类库和API繁杂

(2)心累:可靠性能力补齐,工作量和难度都非常大

(3)有坑:Selector空轮询,导致CPU 100%

 

 

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值