IO和IO设备和IO指令和IO通道 以及 IO的分类(只要涉及 IO,这4个就绑定在一起都会使用到)

本文详细阐述了IO的概念,包括IO通道、IO指令和IO设备。IO通道是数据传输的基础,单向流动且可能涉及多个通道。网络IO具有两个通道,每个连接一个网络接口。IO操作的同步、异步、阻塞和非阻塞特性以及系统资源的释放与IO通道的关闭密切相关。同时,文章还探讨了用户IO和非用户IO的区分,以及IO操作对系统资源的影响。
摘要由CSDN通过智能技术生成

1.IO:与 磁盘,文件,网络接口 等 系统共享资源,之间建立通道,并且传输数据的行为 叫 IO
IO分为 inputStream 和 OutputStream,一个IO指令操作,可能是I,可能是O(例如 写文件),可能是IO(例如 网络请求)

2.IO 指令:cpu执行线程中的io指令,发生IO行为的 叫 IO指令,IO指令可以是 阻塞IO指令,非阻塞IO指令,和IO通道没有关系,IO通道只是前提

3.IO指令 需要 cpu执行 , 但是 IO(这种 传输 数据的行为)不用cpu执行

4.IO设备:内存 -> IO通道 -> 与内存建立IO通道的另一端,另一端是,磁盘,文件,网络,键盘灯,一般分为2种:用户和非用户,而用户操作的另一端,就是IO设备,简单来说,键盘,鼠标就是IO设备

5.IO 通道:只要有 IO行为,就必定有 IO通道,注意 io通道 是计算机内部的,与 网络channel,connection不同,即 IO指令(内存) -> 开启 io通道 ->
共享资源(磁盘,文件,网络),当涉及到 网络的时候,那么 网络会与另一端网络ip开启 一个网络通道(通过网线)完成数据传输,而这个 不叫IO了,这是 网线的数据传输,但是数据 传输到 网线口 -> 内存,所以 网络IO中 io 通道 和 网络通道 都存在,但要区分开

IO 通道 是 IO的前提,不能算在 IO操作中,而且 执行 阻塞IO指令,os才会把 线程 变成 阻塞态,不能争抢cpu资源,即阻塞IO 和 非 阻塞IO 和IO通道没有关系,而是跟 其IO指令有关系
关于IO占用系统资源的,系统的资源释放与否,只与 IO通道是否关闭有关系,与 IO指令是否执行完毕没有任何关系

6.区分 IO通道,和网络通道的区别

6.IO通道的数据单方向流动性:即 开启的 IO通道,只能 由(内存/ 建立IO通道的系统资源) 到 (建立IO通道的系统资源 / 内存),即一个通道 数据只能由 一端 流向 另一端,是单向的

7.IO通道的个数:由IO通道的数据单方向流动性可知,只有 有 多方向流动的 IO(例如 网络通信),就会建立,2个及以上 的 IO通道,并且一个通道一个网络接口

8.IO的分类(有多种分类方式)

	1. 按 IO通道的个数分:
		1. 单通道
		2. 2或多通道
		
	2. 按 同步,异步分
	 	1. 同步IO
	 	2. 异步IO

	3. 按 阻塞 和 非阻塞
		1. 阻塞IO
		2. 非阻塞IO

	4. 按IO通道 连接的 共享资源是否是 网线接口分
		1. 网络IO 
		2. 非网络IO

	5. 按 IO操作 有没有用户参与 分
		1. 用户IO (鼠标,键盘)
		2. 非用户IO

9.IO操作 未结束前,即IO通道 未关闭前,系统共享资源不会释放

10.IO通道关闭,与其对应的 系统资源就会释放,不用单独释放系统资源,跟线程的io操作无关,反正IO通道开启,系统资源获得,IO通道关闭系统资源释放

11.网络IO 必定有 2条IO通道,而且一定有 一个发送端,和一个接受端,同时发送端也同时作为接收端,接收端同时作为发送端,系统资源都是 网线接口

12.对于网线系统资源,它不不是一个,不要 混淆概念,对于文件磁盘,鼠标这些系统共享资源是单一的就是一个,一个线程占用了,其他线程就不能拥有,而网路接口是很多接口的,只是线程占用的那个接口,IO通道不释放是不会释放那个接口的

13.网络IO 有 2条 IO通道,并且 2条IO通道,各自连着一个网线接口资源,关闭一个IO通道,只会释放一个 网络接口

14.一个 IO通道,只能获得一个 系统资源,例如网络IO通道有2个就有2个网线接口资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值