NIO三大核心组件关系

NIO三大核心组件关系_第1张图片
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中的

你可能感兴趣的:(java,nio)