Atitit 五种IO模型attilax总结 blocking和non-blocking synchronous IO和asynchronous I
Atitit 五种IO模型attilax总结 blocking和non-blocking synchronous IO和asynchronous I
1.1. .3 进程的阻塞1
1.2. 网络IO的模型大致有如下几种:1
1.3. IO 模型的简单矩阵。如下图所示:2
2. 五种IO模型总结2
2.1. 3.1 blocking和non-blocking区别2
2.2. 3.2 synchronous IO和asynchronous IO区别2
2.3. 各个IO Model的比较如图所示:3
同步、异步、阻塞与非阻塞
1.1. .3 进程的阻塞
正在执行的进程,由于期待的某些事件未发生,如请求系统资源失败、等待某种操作的完成、新数据尚未到达或无新工作做等,则由系统自动执行阻塞原语(Block),使自己由运行状态变为阻塞状态。可见,进程的阻塞是进程自身的一种主动行为,也因此只有处于运行态的进程(获得CPU),才可能将其转为阻塞状态。当进程进入阻塞状态,是不占用CPU资源的。
1.2. 网络IO的模型大致有如下几种:
· 同步模型(synchronous IO)
o 阻塞IO(bloking IO)
o 非阻塞IO(non-blocking IO)
o 多路复用IO(multiplexing IO)
o 信号驱动式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
转载于:https://www.cnblogs.com/attilax/p/6098812.html
Atitit 五种IO模型attilax总结 blocking和non-blocking synchronous IO和asynchronous I相关推荐
- springBoot整合rabbitmq并测试五种常用模型
之前我们记录了原生java代码使用rabbitmq的方法,很简单,类似于原生jdbc代码一样,将连接对象抽离出来作为工具类,生产者和消费者通过工具类获取连接对象,进而获取通道对象,再注册交换机或者是队 ...
- Web3 网络效应:五种心智模型
Web3 网络效应:五种心智模型 在过去的十年里,网络效应推动了Web2平台的崛起,也奠定了其主导地位,同时激发了建设者和投资者的想象力.一些人认为网络效应在Web3中会更加强大,而另一些人则认为We ...
- AEB 五种安全距离模型
写在前面当汤喝 AEB,即"Autonomous Emergency Braking"的缩写,意为自动紧急制动系统,可以在检测到危险时通过系统协助驾驶者进行制动,从而避免或减少 ...
- RabbitMQ除开RPC的五种消模型----原生API
2.五种消息模型 RabbitMQ提供了6种消息模型,但是第6种其实是RPC,并不是MQ,因此不予学习.那么也就剩下5种. 但是其实3.4.5这三种都属于订阅模型,只不过进行路由的方式不同. 通过一个 ...
- SpringBoot整合RabbitMQ 实现五种消息模型
目录 SpringBoot中使用RabbitMQ 搭建初始环境 引入依赖 配置配置文件 测试类 注入 rabbitTemplate 消息队列RabbitMQ之五种消息模型 第一种直连模型使用 开发生产 ...
- 【干货】机器学习中的五种回归模型及其优缺点
http://blog.itpub.net/31542119/viewspace-2199810/ 线性和逻辑斯蒂(Logistic)回归通常是是机器学习学习者的入门算法,因为它们易于使用和可解释性. ...
- linux 五种IO模型 简介
Linux下主要的IO主要分为:阻塞IO(Blocking IO),非阻塞IO(Non-blocking IO),同步IO(Sync IO)和异步IO(Async IO). 同步:调用端会一直等待服务 ...
- 聊聊 Linux 中的五种 IO 模型
聊聊 Linux 中的五种 IO 模型 2016/04/21 · IT技术 · 8 评论 · iO, 同步, 异步, 阻塞, 非阻塞 分享到:0 本文作者: 伯乐在线 - 陶邦仁 .未经作者许可,禁止 ...
- 详解Linux 五种IO模型
原文:https://www.jianshu.com/p/486b0965c296 上一篇 同步.异步.阻塞.非阻塞 已经通俗的讲解了,要理解同步.异步.阻塞与非阻塞重要的两个概念点了,没有看过的,建 ...
最新文章
- python创建列向量_关于Numpy中的行向量和列向量详解
- SkipList 跳表
- SSH访问控制,多次失败登录即封掉IP,防止暴力破解
- 什么是OOA/OOD
- flush privileges
- JS面试之对象(2)
- Dual-polarity supply provides ±12V from one IC
- cocos2d-x自制工具07:打印cocos2d-x的节点树
- LayaAir TTF字体使用
- linux之svn回滚/回退到某个版本
- frida hook 出现 Process terminated
- Debezium系列之:Debezium UI部署详细步骤
- 在短短几分钟内用冰柱构建超快速PHP服务器
- 通过宏函数计算结构体成员偏移量
- 车轮轨迹原理_方向盘与车轮轨迹图解,方向盘和车轮的动态图
- java 正序a~z_java 策略模式,list集合,实现id 姓名年龄正序倒序排序(如果年龄或者姓名重复,按id正序排序)...
- java timestamp 使用_Java中针对Timestamp的操作解析
- zabbix报警-邮件-钉钉
- 蓝桥杯练习----数字三角形,Cowboys,Beaver's Calculator
- 如何在Activex中使用字体(2)
热门文章
- Flink SQL 的 9 个示例
- 1分钱,工程师可以做什么?
- unity3d干货分享:实现敌人锥形视角的3个方法
- 一天学完spark的Scala基础语法教程八、集合(idea版本)
- 如何修改Xshell默认存储路径
- IT行业分析之企业信息化技术
- springboot(1)使用SpringBoot基础HTTP接口GET|POST|DELETE|PUT请求
- C++的一些知识点摘抄(创建基本类 高级类)
- Spring Annotation(@Autowire、@Qualifier)
- CentOS7搭建hadoop2.6.4+HBase1.1.6