博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Atitit  五种IO模型attilax总结 blocking和non-blocking synchronous IO和asynchronous I
阅读量:6914 次
发布时间:2019-06-27

本文共 1256 字,大约阅读时间需要 4 分钟。

 

 

 

 

Atitit attilax总结 blocking和non-blocking synchronous IO和asynchronous I

 

 

 

1.1. .3 进程的阻塞

正在执行的进程,由于期待的某些事件未发生,如请求系统资源失败、等待某种操作的完成、新数据尚未到达或无新工作做等,则由系统自动执行阻塞原语(Block),使自己由运行状态变为阻塞状态。可见,进程的阻塞是进程自身的一种主动行为,也因此只有处于运行态的进程(获得CPU),才可能将其转为阻塞状态。当进程进入阻塞状态,是不占用CPU资源的

1.2. 网络IO的模型大致有如下几种:

· 同步模型(synchronous IO)

阻塞IO(bloking IO)

非阻塞IO(non-blocking IO)

多路复用IO(multiplexing IO)

信号驱动式IO(signal-driven IO)

· 异步IO(asynchronous IO)

注:由于signal driven IO在实际中并不常用,所以我这只提及剩下的四种IO Model。

1.3.  IO 模型的简单矩阵。如下图所示:

 

2. 五种IO模型总结

2.1. 3.1 blocking和non-blocking区别

调用blocking IO会一直block住对应的进程直到操作完成,而non-blocking IO在kernel还准备数据的情况下会立刻返回。

2.2. 3.2 synchronous IO和asynchronous IO区别

在说明synchronous IO和asynchronous IO的区别之前,需要先给出两者的定义。POSIX的定义是这样子的:

A synchronous I/O operation causes the requesting process to be blocked until that I/O operation completes;

An asynchronous I/O operation does not cause the requesting process to be blocked;

两者的区别就在于synchronous IO做”IO operation”的时候会将process阻塞。按照这个定义,之前所述的blocking IO,non-blocking IO,IO multiplexing都属于synchronous IO。

2.3. 各个IO Model的比较如图所示:

 

 

 

 

Linux 五种IO模型 - paincupid的专栏 - 博客频道 - CSDN.NET.html

 

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 

汉字名:艾提拉(艾龙)   EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

Atiend

 

 

你可能感兴趣的文章
ARCGIS RUNTIME FOR IOS总结(六)
查看>>
批量scp脚本——从多台机器拷贝文件
查看>>
Oracle 11g安装图文攻略
查看>>
用VBA宏从一个工作薄复制内容到另一个工作薄
查看>>
Android架构分析之使用自定义硬件抽象层(HAL)模块
查看>>
VC6.0启动File-open和Project-add file to project崩溃的解决方法
查看>>
死锁线程探讨Java中的死锁现象
查看>>
Java HashMap的死循环 以及 LRUCache的正确实现
查看>>
地信快享论坛-见习版
查看>>
hdu1244(dp)
查看>>
VMwarevSphere 服务器虚拟化之二十九 桌面虚拟化之安装View副本服务器
查看>>
基于Levenberg-Marquardt训练算法的BP网络Python实现
查看>>
由判断三一点是否在三角形内部而引发的思考.....
查看>>
玩转动态编译:四、封装
查看>>
JavaScript 调试
查看>>
装腔指南_百度百科
查看>>
Android动态的全屏和退出全屏
查看>>
Ubuntu 中软件的安装、卸载以及查看的方法总结
查看>>
文本阴影:text-shadow
查看>>
freeswitch 音 视频 支持的编码
查看>>