网络编程的5个IO模型
2017-05-22 15:04
393 查看
网络编程的5个io模型
据Unix网络编程,Unix主要有阻塞IO、非阻塞IO、信号驱动IO、IO复用、异步IO;前五种都是同步,只有最后一种才是异步IO。1、 先贴上Unix网络编程的几张大图:
同步IO和异步IO的区别就在于:数据拷贝的时候进程是否阻塞!
阻塞IO和非阻塞IO的区别就在于:应用程序的调用是否立即返回!
阻塞IO:从图中可以看出进程会一直阻塞,直到数据拷贝完成;
非阻塞IO:非阻塞IO通过进程反复调用IO函数(多次系统调用,并马上返回);在数据拷贝的过程中,进程是阻塞的;
信号驱动IO:两次调用,两次返回;
IO复用:主要是select和epoll;对一个IO端口,两次调用,两次返回,比阻塞IO并没有什么优越性;关键是能实现同时对多个IO端口进行监听;
异步IO:数据拷贝的时候进程无需阻塞。
相关文章推荐
- 网络编程的5个io模型
- 网络编程的5个IO模型
- 【转】网络编程模型综述 之 成熟的IO框架介绍
- 网络编程--IO模型示例
- 网络编程--IO模型示例(阻塞式IO)
- Linux非阻塞IO(二)网络编程中非阻塞IO与IO复用模型结合
- JAVA基础知识之网络编程——-网络通信模型(IO模型)
- 网络编程的4种IO模型
- 网络编程IO模型--学习笔记
- 网络编程--IO模型示例
- 关于网络编程五种IO模型的形象比喻
- 网络编程模型综述 之 成熟的IO框架介绍
- Linux非阻塞IO(二)网络编程中非阻塞IO与IO复用模型结合
- linux网络编程之IO模型
- 关于网络编程五种IO模型的形象比喻
- 网络编程--IO模型示例
- 网络编程--IO模型示例
- 网络编程--IO模型示例
- 网络编程中的5种IO模型
- Linux IO模型和网络编程模型