继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【学习打卡】第一天**解锁网络编程之NIO的前世今生-NIO网络编程模型**

慕仔5102766
关注TA
已关注
手记 2
粉丝 0
获赞 0

**课程名称:**解锁网络编程之NIO的前世今生

**课程章节:**NIO网络编程模型

**主讲老师:**张小喜

课程内容

1.编程模型

  1. NIO简介:Non-blocking I/O 或 New I/O
  2. 出生:JDK 1.4
  3. 职务:高并发网络服务器支持岗

2.BIO网络模型

图片描述

3.BIO网络模型的缺点

  1. **阻塞式I/O模型:**服务端业务线程会因阻塞IO的问题一直等待客户端访问线程再次发起请求
  2. **弹性伸缩能力差:**服务端业务线程和客户端是1:1的
  3. **多线程耗资源:**线程的创建和销毁很消耗资源

4.NIO网络模型

图片描述

  1. Selector注册建立连接事件
  2. 客户端向服务器端发送建立连接请求
  3. Selector启动建立连接时间处理器Acceptor Handler
  4. Acceptor Handler 创建与客户端的连接
  5. Acceptor Handler 响应客户端建立连接成功请求
  6. Acceptor Handler 将创建的Socket连接注册到Selector上并且注册连接的可读事件
  7. 客户端发送请求到Selector上
  8. Selector启动连接读写处理器Read&Write Handler
  9. Read&Write Handler 处理与客户端的读写业务
  10. Read&Write Handler 响应客户端请求
  11. Read&Write Handler 注册Socket连接时间到Selector上

5.NIO网络模型改进

  1. **非阻塞式IO模型:**服务器端提供一个单线程的Selector来统一管理所有客户端接入的socket连接,负责监听每个连接所关心的事件
  2. **弹性伸缩能力强:**服务器端与客户端线程数不再是1:1的关系,而是1:m的关系
  3. **单线程节省资源:**解决了线程的创建与销毁,以及线程上下文切换的问题
打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP