NIO三大核心组件之间的关系

NIO三大核心组件之间的关系

背景

netty底层核心nio

探索

nio有三大核心角色Selector(选择器),Channel(管道、通道),Buffer(缓存区)
Selector -> Channel -> Buffer

1.三大组件的介绍

1.1 Buffer(缓冲区)
用于存储数据,底层是一个数组
拥有三个核心属性:capacity、limit、position
capacity:数组的长度,意为缓冲区的总大小
limit:可读/可写的的长度
position:即将写入或者写出的下一个数据的位置
之间的大小关系为 position <= limit <= capacity

1.2 Channel(通道)
A nexus for I/O operations.(官方介绍)
一个io操作的通信桥梁,起到连接作用,io操作并不直接对buffer进行数据的交换,必须通过Channel进行读/写
一个Channel可以向多个Selector注册(个人根据Channel中的SelectionKey数组属性理解的)

1.3 Selector(选择器)
A multiplexor of SelectableChannel objects.(官方介绍)
选择器,可选通道对象的多路复用器。
用于轮询多个Channel,查看Channel的读写事件
一个Selector可以存储多个Channe

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值