Reactor与Proactor区别
如网络编程中accept之后等待数据到达,并且读取数据为例:
Reactor: 基于同步IO
1. 线程等待读取socket数据,将socketfd添加到事件分派器中,如添加到epoll;
2. 事件分派器阻塞等待socketfd可读事件发生;
3. 若数据到达,socketfd变成可读状态,事件分派器通知线程(或者回调)处理;
4. 线程阻塞完成从socket读数据;
--我要读,告诉你,你发现可以读的时候通知我,然后我去读;
Proactor: 基于异步IO
1. 线程等待读取socket数据,将存储数据的缓冲区和和读事件请求交给事件分派器;
2. 事件分派器等待socket数据到达;
3. 若数据到达,事件分派器不通知线程读取,而是直接完成数据的读取;
4. 通知线程读取数据完成,并已经存入提供的缓冲区中;
--我要读,告诉你,你帮我读好,再通知我;
Reactor与Proactor区别的更多相关文章
- 【转】Reactor与Proactor两种模式区别
转自:http://www.cnblogs.com/cbscan/articles/2107494.html 两种IO多路复用方案:Reactor and Proactor 一般情况下,I/O 复用机 ...
- 【Network】一张图看懂 Reactor 与 Proactor 模型的区别
首先来看看Reactor模式,Reactor模式应用于同步I/O的场景.我们以读操作为例来看看Reactor中的具体步骤:读取操作:1. 应用程序注册读就需事件和相关联的事件处理器2. 事件分离器等待 ...
- ACE_linux:Reactor与Proactor两种模式的区别
一.概念: Reactor与Proactor两种模式的区别.这里我们只关注read操作,因为write操作也是差不多的.下面是Reactor的做法: 某个事件处理器宣称它对某个socket上的读事件很 ...
- IO设计模式:Reactor和Proactor对比
IO设计模式:Reactor和Proactor对比 平时接触的开源产品如Redis.ACE,事件模型都使用的Reactor模式:而同样做事件处理的Proactor,由于操作系统的原因,相关的开源产品也 ...
- 高性能IO设计的Reactor和Proactor模式(转)
在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作. 在比较这两个模式之前,我们首先的搞明白 ...
- Reactor和Proactor模式
在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作.同步和异步 同步和异步是针对应用程序和内 ...
- I/O模型系列之四:两种高性能IO设计模式 Reactor 和 Proactor
不同的操作系统实现的io策略可能不一样,即使是同一个操作系统也可能存在多重io策略,常见如linux上的select,poll,epoll,面对这么多不同类型的io接口,这里需要一层抽象api来完成, ...
- I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor
目录: <I/O模型之一:Unix的五种I/O模型> <I/O模型之二:Linux IO模式及 select.poll.epoll详解> <I/O模型之三:两种高性能 I ...
- 【1】BIO,NIO,AIO与Reactor,Proactor
讲解IO思路: BIO(一个连接一个线程) -->大并发问题-->NIO(操作系统层面:IO多路复用) -->NIO两个问题:1.谁去监听就绪(Boss),2.谁来处理已就绪(Wor ...
随机推荐
- BZOJ4871 Shoi2017摧毁“树状图”(树形dp)
设f[i][0/1/2/3/4/5]表示i子树中选一条链不包含根/i子树中选一条链包含根但不能继续向上延伸/i子树中选一条链可以继续向上延伸/选两条链不包含根/选两条链包含根但不能继续向上延伸/选两条 ...
- 深入理解Delete(JavaScript)
深入理解Delete(JavaScript) Delete 众所周知是删除对象中的属性. 但如果不深入了解delete的真正使用在项目中会出现非常严重的问题 (: Following 是翻译 ka ...
- 【刷题】BZOJ 2882 工艺
Description 小敏和小燕是一对好朋友. 他们正在玩一种神奇的游戏,叫Minecraft. 他们现在要做一个由方块构成的长条工艺品.但是方块现在是乱的,而且由于机器的要求,他们只能做到把这个工 ...
- BZOJ5285 & 洛谷4424 & UOJ384:[HNOI/AHOI2018]寻宝游戏——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=5285 https://www.luogu.org/problemnew/show/P4424 ht ...
- 洛谷 P2324 [SCOI2005]骑士精神 解题报告
P2324 [SCOI2005]骑士精神 题目描述 输入输出格式 输入格式: 第一行有一个正整数T(T<=10),表示一共有N组数据.接下来有T个5×5的矩阵,0表示白色骑士,1表示黑色骑士,* ...
- Kippo蜜罐的部署、诱捕节点的搭建以及自动告警
Kippo是一个中等交互的SSH蜜罐,提供了一个可供攻击者操作的shell,攻击者可以通过SSH登录蜜罐,并做一些常见的命令操作. 当攻击者拿下一台服务器的权限后,很可能会进行小范围的端口探测或者批量 ...
- Django 2.0 URL
Overview¶ A view is a “type” of Web page in your Django application that generally serves a specific ...
- cuda环境下安装opencv出现nvcc warning : The 'compute_11'
警告打印: nvcc warning : The 'compute_11', 'compute_12', 'compute_13', 'sm_11', 'sm_12', and 'sm_13' arc ...
- Codeforces Round #342 (Div. 2) A
A. Guest From the Past time limit per test 1 second memory limit per test 256 megabytes input standa ...
- Educational Codeforces Round 6 C
C. Pearls in a Row time limit per test 2 seconds memory limit per test 256 megabytes input standard ...