前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NIO 学习

NIO 学习

作者头像
夹胡碰
发布2021-03-11 11:31:47
2890
发布2021-03-11 11:31:47
举报
文章被收录于专栏:程序猿~

1. BIO网络模型

缺点:
  • 阻塞式I/O模型
  • 弹性伸缩能力差
  • 多线程耗资源

2. NIO网络模型

优点:
  • 非阻塞式I/O -> 一个线程监听
  • 弹性伸缩能力强 -> 一个线程处理所有请求
  • 单线程节省资源
缺点
  • NIO类库和API繁杂
  • 可靠性能力补齐,工作量和难度都非常大
  • Selector空轮询,导致CPU100%
NIO核心
  • Channel: 通道
  • Buffer: 缓冲区
  • Selector: 选择器或多路复用器(检测多个Channel状态,管理多个网络链接)
Channel 简介
  • 双向性
  • 非阻塞性(可以设置)
  • 操作唯一性
Buffer 简介
  • Capacity 容量
  • Position 位置
  • Limit 上限
  • Mark 标记
Buffer API
代码语言:javascript
复制
// 初始化长度为10的Buffer
ByteBuffer.allocate(10);
// 写入数据
byteBuffer.put("abc".getBytes());
// 写模式=》读模式
byteBuffer.flip();
// 读取
byteBuffer.get();
// 记录当前Position位置
byteBuffer.mark();
// 重置mark位置
byteBuffer.reset();
// 所有属性重置
byteBuffer.clear();
SelectionKey简介
  • 四种就绪常量
  • 有价值的属性

参考

  1. Thrift(Java版)到网络编程(三)—异步和NIO
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. BIO网络模型
    • 缺点:
    • 2. NIO网络模型
      • 优点:
        • 缺点
          • NIO核心
            • Channel 简介
              • Buffer 简介
              • 参考
              相关产品与服务
              弹性伸缩
              弹性伸缩(Auto Scaling,AS)为您提供高效管理计算资源的策略。您可设定时间周期性地执行管理策略或创建实时监控策略,来管理 CVM 实例数量,并完成对实例的环境部署,保证业务平稳顺利运行。在需求高峰时,弹性伸缩自动增加 CVM 实例数量,以保证性能不受影响;当需求较低时,则会减少 CVM 实例数量以降低成本。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档