1.任何 开启网络IO 的操作,都是网络编程,http,连接mysql,…只要涉及网络IO 的,都是网络编程
2.只要是网络编程,就有 2个IO通道,就涉及 IO通道的关闭,就涉及 系统资源的释放
3.而我们所说的,java网络编程,只是我们想 改变,IO的类型,比如同步IO,改成异步IO,等 特别定制的 网络IO模型,java服务端 发http请求,也是网络编程,也是网络IO
4.网络IO 必定有 2条IO通道,而且一定有 一个发送端,和一个接受端,同时发送端也同时作为接收端,接收端同时作为发送端,系统资源都是 网线接口
网络IO 有 2条 IO通道,并且 2条IO通道,各自连着一个网线接口资源,关闭一个IO通道,只会释放一个 网络接口
一个 IO通道,只能获得一个 系统资源,例如网络IO通道有2个就有2个网线接口资源
IO 通道 是 IO的前提,不能算在 IO操作中,而且 执行 阻塞IO指令,os才会把 线程 变成 阻塞态,不能争抢cpu资源,即阻塞IO 和 非 阻塞IO 和IO通道没有关系,而是跟 其IO指令有关系
关于IO占用系统资源的,系统的资源释放与否,只与 IO通道是否关闭有关系,与 IO指令是否执行完毕没有任何关系