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