其实这几个概念可能在实际的开发中并没有什么需要注意的,因为你调用什么函数就知道接下来需要怎么做了,但是如果要确实分清这几个概念的区别和联系,还是需要动动脑筋的。下面这幅图十分的好:总结来说,区分的关键点在于:同步-异步:IO资源可用与否是自己去检测,还是依赖于状态、信号、回调等其它机制来通知;阻塞-非阻塞:IO调用的函数在资源不可用时候是否立即返回,还是被挂 …
linux io模型
在Java中,一共有三种IO模型,分别是阻塞IO(BIO)、非阻塞IO(NIO)和异步IO(AIO)。Linux五种IO模型和Java三种IO模型Java BIOJava BIO就是Java的传统IO模型,对应了操作系统IO模型里的阻塞IO。Java BIO相关的实现都位于java.io包下,其通信原理是客户端、服务端之间通过Socket套接字建立管道连接, …
五种IO模型阻塞IO非阻塞IOIO复用(select和poll)信号驱动异步IO(Posix.1 的 aio...系列函数)备注一个输入操作一般分为两个阶段:等待数据准备好把数据从内核拷贝到进程一个套接字的输入操作,第一步是等待数据到达网络,当分组到达时,它被拷贝到内核中的某个缓冲区,第二步是将数据从内核缓冲区拷贝到应用缓冲区那我们来分别看下这五种IO模型阻 …