Java的IO模型基于网络编程利弊分析
JAVA的IO模型基于网络编程利弊分析
一、IO通俗理解
-
IO的过程
-
思考①答案:文件句柄
- 思考②答案:
- 阻塞/非阻塞 IO(程序对内核空间数据拷贝到用户空间阶段的耗时操作的等待方式)
- 同步/异步IO(程序对内核空间数据拷贝到用户空间阶段的耗时操作的处理方式)
二、Unix中定义的IO模型
- 阻塞式IO模型
- 非阻塞式IO模型(数据未准备好的时候 直接返回 数据准备好的时候 复制数据 此时是同步的)
- IO复用模型(复用链路)
三、网络编程与Socket
-
OSI模型
-
网络通讯流程
-
Socket
-
Socket和应用程序中的IO的关系?
- socket只是网络通讯模型中一层抽象的API
- socket对象最多只是数据的一个承载体而已(或者说是一个FD)
- JAVA中的socket只是fd的一种封装而已
四、JAVA的IO模型(BIO&NIO)
-
概念
-
实现
-
BIO(只能连接单客户端 想连接多客户端就得多加线程)
-
NIO
-