
NIO
文章平均质量分 88
NIO学习内容整理
na_tion
601194865@qq.com
展开
-
2、IO模型
一、阻塞IO(blocking io)A拿着一支鱼竿在河边钓鱼,并且一直在鱼竿前等,在等的时候不做其他的事情,十分专心。只有鱼上钩的时,才结束掉等的动作,把鱼钓上来。在内核将数据准备好之前,系统调用会一直等待所有的套接字。二、非阻塞IO--NIO(noblocking io)B也在河边钓鱼,但是B不想将自己的所有时间都花费在钓鱼上,在等鱼上钩这个时间段中,B也在做其他的事情(一会看看书,一会读读报纸,一会又去看其他人的钓鱼等),但B在做这些事情的时候,每隔一个固定的时间检查鱼是否上钩。一原创 2021-08-28 00:35:28 · 186 阅读 · 0 评论 -
2、数据拷贝过程
一、用户空间与内核空间二、标准IO/缓存IO缓存 I/O 又被称作标准 I/O,大多数文件系统的默认 I/O 操作都是缓存 I/O。标准IO中,用户进程中的一个完整IO分为两个阶段:(1)用户空间<------------->内核空间(2)内核空间<------------->设备空间三、直接IO...原创 2021-08-27 23:37:25 · 1917 阅读 · 0 评论 -
1、Java-IO分类
一、Java IO 分类(1)字节流、字符流 (a)直接可以操作字节的称为字节流,如操作图像、视频等; (b)直接可以操作字符的称为字符流,如文本文件; (c)字节流不可以直接操作字符,字符流不可以直接操作字节,相互操作需要借助转换流。(2)节点流、处理流 (a)直接可以操作文件的为节点流; (b)不可以直接处理文件,包裹字节流的称为处理流。二、Java IO流体系三、重点IO流说明3....原创 2020-12-13 22:17:34 · 557 阅读 · 0 评论 -
BIO/NIO/Multiplexing实现代码-3
一、常见IO模型对比所有的系统I/O都分为两个阶段:等待就绪和操作。举例来说,读函数,分为等待系统可读和真正的读;同理,写函数分为等待网卡可以写和真正的写。需要说明的是:(1)等待就绪的阻塞是不使用CPU的,是在“空等”;【参考:进程阻塞为什么不占用cpu资源?】(2)而真正的读写操作的阻塞是使用CPU的,真正在"干活",而且这个过程非常快,属于memory copy,带宽通常在1GB/s级别以上,可以理解为基本不耗时。下图是几种常见I/O模型的对比:二、BIO代码实现三、N原创 2020-11-23 11:37:20 · 117 阅读 · 0 评论 -
BIO/NIO/Multiplexing实现代码-2
一、常见IO模型对比所有的系统I/O都分为两个阶段:等待就绪和操作。举例来说,读函数,分为等待系统可读和真正的读;同理,写函数分为等待网卡可以写和真正的写。需要说明的是:(1)等待就绪的阻塞是不使用CPU的,是在“空等”;【参考:进程阻塞为什么不占用cpu资源?】(2)而真正的读写操作的阻塞是使用CPU的,真正在"干活",而且这个过程非常快,属于memory copy,带宽通常在1GB/s级别以上,可以理解为基本不耗时。下图是几种常见I/O模型的对比:二、BIO代码实现三、N原创 2020-11-23 11:00:41 · 117 阅读 · 0 评论 -
BIO/NIO/Multiplexing实现代码-1
一、常见IO模型对比所有的系统I/O都分为两个阶段:等待就绪和操作。举例来说,读函数,分为等待系统可读和真正的读;同理,写函数分为等待网卡可以写和真正的写。需要说明的是:(1)等待就绪的阻塞是不使用CPU的,是在“空等”;【参考:进程阻塞为什么不占用cpu资源?】(2)而真正的读写操作的阻塞是使用CPU的,真正在"干活",而且这个过程非常快,属于memory copy,带宽通常在1GB/s级别以上,可以理解为基本不耗时。下图是几种常见I/O模型的对比:二、BIO代码实现.原创 2020-11-22 18:03:50 · 256 阅读 · 0 评论