为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Java

**课程名称:**解锁网络编程之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. **单线程节省资源:**解决了线程的创建与销毁,以及线程上下文切换的问题
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消