当前位置: 首页 > news >正文

庖丁解牛:NIO核心概念与机制详解 02 _ 缓冲区的细节实现

文章目录

  • Pre
  • Overview
  • 状态变量
    • 概述
    • Position
  • 访问方法

在这里插入图片描述


Pre

庖丁解牛:NIO核心概念与机制详解 01


接下来我们来看下缓冲区内部细节

Overview

接下来将介绍 NIO 中两个重要的缓冲区组件:状态变量和访问方法 (accessor)

状态变量是"内部统计机制"的关键。每一个读/写操作都会改变缓冲区的状态。通过记录和跟踪这些变化,缓冲区就可能够内部地管理自己的资源。

在从通道读取数据时,数据被放入到缓冲区。在有些情况下,可以将这个缓冲区直接写入另一个通道,但是在一般情况下,您还需要

  • 查看数据。这是使用 访问方法 get() 来完成的。
  • 同样,如果要将原始数据放入缓冲区中,就要使用访问方法 put()。

状态变量

概述

可以用三个值指定缓冲区在任意时刻的状态:

  • position
  • limit
  • capacity

这三个变量一起可以跟踪缓冲区的状态和它所包含的数据。

我们将详细分析每一个变量,还要介绍它们如何适应典型的读/写(输入/输出)进程。在这个例子中,我们假定要将数据从一个输入通道拷贝到一个输出通道


Position


访问方法

相关文章:

  • 数学建模值TOPSIS法及代码
  • Linux(Ubuntu)安装JDK环境
  • Flink和Kafka连接时的精确一次保证
  • 文字的力量
  • C++项目案例圆和点的关系 (涉及知识点:头文件定义类,cpp文件实现类,类和作用域,linux编译运行c++项目)
  • html实现图片裁剪处理(附源码)
  • 通过bat命令启动jar后缀软件
  • C++继承(公有继承,保护继承,私有继承)
  • 企业APP软件定制开发的关键步骤|网站小程序搭建
  • asp.net在线考试系统+sqlserver数据库
  • Ubuntu22.04 部署Mqtt服务器
  • 最长单调上升子序列问题
  • Centos(Linux)服务器安装Dotnet8 及 常见问题解决
  • 21. 深度学习 - 拓朴排序的原理和实现
  • 使用webhook发送企业微信消息
  • [deviceone开发]-do_Webview的基本示例
  • 77. Combinations
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • CentOS 7 防火墙操作
  • create-react-app项目添加less配置
  • egg(89)--egg之redis的发布和订阅
  • ES6--对象的扩展
  • Flex布局到底解决了什么问题
  • Github访问慢解决办法
  • iOS 系统授权开发
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • JavaScript的使用你知道几种?(上)
  • java概述
  • Lsb图片隐写
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • vue2.0项目引入element-ui
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • Windows Containers 大冒险: 容器网络
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 检测对象或数组
  • 扑朔迷离的属性和特性【彻底弄清】
  • 人脸识别最新开发经验demo
  • 使用 @font-face
  • 使用权重正则化较少模型过拟合
  • 算法之不定期更新(一)(2018-04-12)
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 一个SAP顾问在美国的这些年
  • 源码安装memcached和php memcache扩展
  • 白色的风信子
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • #WEB前端(HTML属性)
  • #每天一道面试题# 什么是MySQL的回表查询
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (007)XHTML文档之标题——h1~h6
  • (2)nginx 安装、启停
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (八)c52学习之旅-中断实验
  • (八)Docker网络跨主机通讯vxlan和vlan