概念图
Linux的五种I/O模型分别是:
- 阻塞I/O:进程发起I/O请求后被阻塞,直到操作完成。这是最常见的I/O模型。
- 非阻塞I/O:进程发起请求后立即返回,若数据不可用则返回错误。这种方式适合需要高响应的应用。
- I/O复用:通过
select、poll或epoll等机制,允许单个进程监视多个文件描述符,处理多个I/O操作的返回。 - 信号驱动I/O:进程注册信号处理程序,I/O完成后会向进程发送信号,进程在信号处理程序中执行后续操作。
- 异步I/O:进程发出I/O请求后继续执行,I/O完成时通过回调或信号通知进程,进程无需等待。