因为java io是阻塞式的,所以并发性中多进程消耗比较大,所以有了nio,传统式io用的是流读取,创建流,在流中顺序读取;nio是使用的channel(通道) buffer(缓冲区) selector (选择器) 作为核心组件,主要过程为首先使用使用RandomAccessFile来读取文件,然后创建channel,创建缓冲区,在缓冲区中读取数据,或者写入数据,都是通过channel来实现的,所以说channel是双向的,一个channel可以读也可以写,并且是非阻塞的;其中缓冲区有不同的类型,作为一个容器,就是一个固定大小的内存区,用来读写,从中有几个参数,position,limit capacity 等,来得到当前可读,写位置,容器大小等;selector是用来管理channel的,因为nio是非阻塞的,所以一个selector可以管理多个channel,首先创建selector,然后通过selector注册多个channel并且表明监听的动作,并在适当的时候进行触发;
java nio 概述
最新推荐文章于 2023-02-09 15:23:55 发布