NIO三大核心组件关系

本文深入探讨Java NIO系统,解释了channel、buffer和selector的基本概念。channel是双向的,允许数据在输入和输出之间流动。buffer作为数据交互的核心,是一个内存块,可以用于读写操作。selector用于多路复用,根据事件在多个channel间切换,提高了并发性能。理解这些核心组件对于优化Java应用的I/O操作至关重要。
摘要由CSDN通过智能技术生成

在这里插入图片描述
1、每个channel对应一个Buffer
2、Selector对应一个线程,一个线程对应对个channel
3、程序切换到那个channel由事件决定的,Event就是一个重要的概念
4、Selector会根据事件在不同的channel上切换
5、Buffer是一个内存块,底层是一个数组
6、数据读取写入是通过buffer,这个和bio不同,bio中要么是输入流,要么是输出流。
不能双向,而nio中的buffer既可以读取也可以写入,需要filp方法切换
7、channel是双向的,可以返回底层操作系统的情况。例如linux,底层的操作系统通道就是双向的
8、channel需要注册到Selector中的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值