NIO和AIO

2019-10-08  本文已影响0人  778bc750a218

NIO (New I/O)

基于块(Block),以块未基本单位处理数据

原始类型提供Buffer支持

增加通道

支持锁和文件映射的文件访问接口

基于Selector的异步网络I/O

ByteBuffer byteBuffer=ByteBuffer.allocate(1024);

FileInputStream in=new FileInputStream("");

FileChannel readChannel=in.getChannel();

readChannel.read(byteBuffer);

Buffer

3个重要参数

位置(position) 

//read:从当前位置的下一个位置写数据

//write:从此位置狗读取数据

 容量(capactiy) //总容量上线

上限(limit)//代表实际使用容量

方法:

Buffer rewid() // postion清零,清除标志位mark

Buffer clear() // postion清零 ,limit设为capactiy,清除标志位mark

Buffer flip() //将limit设置到position的位置,然后postion清零,清除标志位,用于读写转换

文件映射到内存

RandomAccessFile fas=new RandomAccessFile("","rw");

readChannel= fas.getChannel();

MappedByteBuffer mbb= readChannel.map(FileChannel.MapMode.READ_WRITE,0,fas.length());

//RandomAccessFile随机访问文件(“随心所欲”地访问一个文件的某个部分)

Selector选择器

https://www.cnblogs.com/snailclimb/p/9086334.html

AIO

使用回调函数进行业务处理

    

上一篇下一篇

猜你喜欢

热点阅读