io模型

祥见 文档:io通信模型.note
链接:http://note.youdao.com/noteshare?id=ac65f2ed9614c5f9b334fab942ae030f&sub=11C4952D198F465FBF1DDEE07EB1DDD8

io阻塞有两处

1.socket.accept() 连接阻塞

2.socket.getInputStream() 读写阻塞

io阻塞一般说的是读写阻塞;在服务端接收到客户端的数据之后;数据从 网卡-> 内核 -> 用户空间的过程;用户空间调用内核数据过程中,出现的阻塞

操作系统一直是支持异步io的,java后来才提供类库支持

阻塞io(阻塞)

[图片上传失败...(image-2e7123-1582904261149)]

非阻塞io(主动轮询)

[图片上传失败...(image-60e6e6-1582904261149)]

io复用模型(通过select轮询)

[图片上传失败...(image-c66b2c-1582904261149)]

信用驱动io(事件驱动,实际复制数据还需同步操作)

[图片上传失败...(image-9acbcd-1582904261149)]

异步io(完全异步,发起一次读即返回,数据准备好回调回来)

[图片上传失败...(image-fa9ba-1582904261149)]

[图片上传失败...(image-e9bc12-1582904261149)]

你可能感兴趣的:(io模型)