NIO总结文——一篇读懂NIO整个流程

本文详细探讨了Java NIO中的Selector在Windows平台上的实现,阐述了Selector如何轮询并处理IO多路复用的事件。通过分析poll方法与内核交互的过程,揭示了Selector如何获取并更新感兴趣事件,以及后续的数据处理步骤。
摘要由CSDN通过智能技术生成

概括NIO做了什么不难,讲清楚NIO如何具体实现的,那就有些难度了,原因是NIO实现过程中涉及的参数太多,许多参数看起来不是很重要,但是却在整个流程分析中不可缺少,往往整个过程分析下来还是没办法形成一个清晰的过程。

所以在分析的过程中先不直接从前往后具体分析,而是从宏观到微观分析

接下来将以NIO在Windows平台实现的具体细节展开,以后也会对linux平台进行分析(分析在windows平台的实现不好之处就是不开源,不知道IO多路复用如何实现的),不过也能把NIO的整个过程分析的差不多。

我们都知道NIO中有几个重要角色

Channel、Selector、SelectionKey

我们先来分析Selector的轮询功能实现。
在这里插入图片描述

Selector负责轮询,在Windows平台中交给它的子类SubSelector来负责。我们知道IO多路复用的实现有select、poll、epoll等实现方法,windows平台我们不知道具体如何实现,但是总的流程一定是和这些实现方法相仿

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值