网络编程 I/O模型
来源:互联网 发布:马刺常青 知乎 编辑:程序博客网 时间:2024/04/30 11:50
这两天在复习网络编程I/O模型,截几张图做笔记
I/O模型包括五种:1.阻塞IO 2.非阻塞IO 3.I/O多路复用 4.信号驱动I/O 5.异步I/O
1.阻塞I/O
客户端或者服务器端的recvfrom()/read()之类的接收消息函数一直等带着数据的到来,没有数据到来九一直等,阻塞这个进程的运行,数据来了就返回,程序继续网下执行
2.非阻塞I/O
客户端或者服务器端的recvfrom()/read()之类的接收消息函数不管有没有消息都会以及返回,有消息的话就拷贝到用户空间。这种太消耗CPU资源了
3.I/O多路复用
利用select和poll函数实现多路复用,其实它也是阻塞的, 他和阻塞模式不同的是它可以监听多个连接,哪个连接的数据到了,它九返回那个连接的描述符,这样是不是高效很多了。
多路复用IO的好处,举个例子:
4.信号驱动I/O
注册一个信号处理函数,有数据就会发出一个信号,执行信号处理函数,类似于java中的接口回调,像OnClickListerner一样
5.异步I/O
异步I/O和信号驱动的区别
信号驱动I/O:消息来了,发出通知,然后再拷贝数据到用户空间
异步I/O:消息拷贝完了再发出通知
几种模式的比较:
1 0
- 《网络编程》I/O 模型
- 网络编程 I/O模型
- WIN网络编程-select(I/O模型)
- unix编程---网络I/O模型
- unix编程---网络I/O模型
- VC++网络编程 WINSOCK I/O模型
- Unix网络编程中的I/O模型
- UNIX网络编程 I/O模型
- unix网络编程-I/O模型
- 网络编程模型综述 之 UNIX网络I/O模型
- 网络I/O模型
- 网络I/O模型
- 网络I\O模型
- 网络 I/O 模型
- UNIX网络编程——网络I/O模型
- linux编程---网络编程之复用I/O模型
- Windows下重叠I/O模型 网络编程
- UNIX 网络编程学习(二)I/O模型
- yii2操作数据库 mysql 读写分离 主从复制
- java多线程——线程间通信之线程等待唤醒机制
- nyoj-106-背包问题
- uboot-命令实现分析
- 2015年04月09日
- 网络编程 I/O模型
- 蓝桥杯2015培训(5)
- (十一) yii2 在视图内进行渲染
- 蓝桥杯2015培训(6)
- 蓝桥杯2015培训(7)
- 蓝桥杯第一部分的小项目
- 一个战斗过程思路,用协程
- 开源协议介绍
- UVA - 1590 IP Networks