高效通信模型之 - 异步通信模型
2015-09-20 01:13
323 查看
#异步模型
#异步和同步>同步,就是在发出一个功能调用时,在没有得到结果前,调用不返回>异步,当一个异步过程调用发出后,调用者不能立即得到调用结果,而是通过状态,通知和回调来通知调用者。>通过检查状态来判断异步调用结果,效率会很低,因为需要周期性检查状态>回调函数和通知差不多
#同步调用与阻塞调用>对于同步调用来说,当前线程还是激活状态的。例如CSocket中调用Receive函数,当缓冲区没有数据时,虽然函数一直在等待而没有返回,但同时线程仍然能继续处理各种消息。>对于阻塞调用来说,当前线程会被挂起。例如 revc函数,当socket工作在阻塞模式的时候,如果在缓冲区没有数据的情况下调用该函数,那么线程将会被挂起,直到有数据为止。
#非阻塞非阻塞,在不能得到结果前,函数不会阻塞当前线程,而是立即返回。>对象是否处于阻塞模式和函数是不是阻塞调用有很强的想关心,但并不是一一对应>阻塞对象可以有非阻塞的调用方式,可以通过API轮询状态,在适当的时候调用阻塞函数,就可以避免阻塞。>对于非阻塞对象,特殊调用也可以进入阻塞调用,例如select>CSocket::Receive 函数(同步)>recv (阻塞)
#WSAAsyncSelect 函数WSAAsyncSelect ( SOCKET s ,
HWND hWnd ,
Unsigned int uMsg ,
long lEvent
)此函数在socket建立之后调用,以打开消息通知。lEvent为网络事件的组合,有如下值
调用WSAAsyncSelect 成功之后,hWnd对应的窗口就会以Windows消息的形式接收网络事件通知。
来自为知笔记(Wiz)
#异步和同步>同步,就是在发出一个功能调用时,在没有得到结果前,调用不返回>异步,当一个异步过程调用发出后,调用者不能立即得到调用结果,而是通过状态,通知和回调来通知调用者。>通过检查状态来判断异步调用结果,效率会很低,因为需要周期性检查状态>回调函数和通知差不多
#同步调用与阻塞调用>对于同步调用来说,当前线程还是激活状态的。例如CSocket中调用Receive函数,当缓冲区没有数据时,虽然函数一直在等待而没有返回,但同时线程仍然能继续处理各种消息。>对于阻塞调用来说,当前线程会被挂起。例如 revc函数,当socket工作在阻塞模式的时候,如果在缓冲区没有数据的情况下调用该函数,那么线程将会被挂起,直到有数据为止。
#非阻塞非阻塞,在不能得到结果前,函数不会阻塞当前线程,而是立即返回。>对象是否处于阻塞模式和函数是不是阻塞调用有很强的想关心,但并不是一一对应>阻塞对象可以有非阻塞的调用方式,可以通过API轮询状态,在适当的时候调用阻塞函数,就可以避免阻塞。>对于非阻塞对象,特殊调用也可以进入阻塞调用,例如select>CSocket::Receive 函数(同步)>recv (阻塞)
#Windows下的异步通信模型
由Winsock提供的异步通信模型,应用程序可以在一个套接字上接收以Windows消息为基础的网络事件通知。WSAAsyncSelect 模式与select模式最大的区别在于,select模式需要不停检测socket,判断有无消息,而WSAAsyncSelect 会在接收到用户定义的消息后通知用户,再对Socket进行相应处理。#WSAAsyncSelect 函数WSAAsyncSelect ( SOCKET s ,
HWND hWnd ,
Unsigned int uMsg ,
long lEvent
)此函数在socket建立之后调用,以打开消息通知。lEvent为网络事件的组合,有如下值
调用WSAAsyncSelect 成功之后,hWnd对应的窗口就会以Windows消息的形式接收网络事件通知。
来自为知笔记(Wiz)
相关文章推荐
- 剑指offer - 将字符串中空格替换为20%
- 对GIT的认识
- java中byte转换int时为何与0xff进行与运算
- 服务器网卡绑定模式对交换机配置选择的影响
- C++11中的lambda表达式
- 比较顺序表和链表的优缺点
- UVA - 10970 Big Chocolate
- oracle数据库导入导出09192255
- linux 指令(经常更新)
- ubuntu 14.04 安装preforce
- 注释转换
- 脊贡执氯延崖治扰训敲
- SQL索引学习-索引结构
- 对git的认识
- 二叉树的实现
- 最小生成树 Prim算法 POJ1258题解
- Quick-cocos2d-x3.3 Study (十四)--------- 遍历 TiledMap 中的对象层,并取得所有坐标
- [LeetCode] Move Zeroes 移动零
- 第一次作业。。
- 感想