慎用Reactor Notify机制
来源:互联网 发布:印度和中国的差距知乎 编辑:程序博客网 时间:2024/04/29 03:38
在Reactor的模式,有一种辅助的通知机制Notify机制,简单说就是通过通知发起者调用 notify函数,notify的消息被保存在一个管道中,handle_event的处理中会检查这个管道中是 否有通知数据,如果有就根据通知的消息,会根据默认的通知消息的类型去调用hanle_input等函数。
ACE Reactor的默认Notify方式采用的是ACE_Pipe ,ACE_Pipe是一个跨平台的管道实现。标准情况来讲,采用的实现,但是在最大的两个平台Windows和Linux上,ACE的实现是采用的Socket实现。很多管道特性所特有的东西,在这两个平台上是无法使用ACE_Pipe实现的。比如,管道的特性可以保证在暂时没有接受者的情况下使用,而Socket是不可能有这个特性的。你必须保证先有接受者,后有发送者的时序。
可以通过定义ACE_HAS_REACTOR_NOTIFICATION_QUEUE的宏编译ACE,这样ACE将不使用ACE_Pipe作为Notify消息的管道,而使用一个自己的内存队列保存Notify消息,这个队列是动态扩展的。而且由于是内存操作,性能方面没有太大问题。
大体位置在重复编译定义后面,#include /**/ "ace/pre.h"前面。保证这个宏起到作用。 #ifndef ACE_CONFIG_LINUX_H #define ACE_CONFIG_LINUX_H //使用内存队列作为Notify Queue #define ACE_HAS_REACTOR_NOTIFICATION_QUEUE #include /**/ "ace/pre.h"
That being said, the standard C++ containers are recommended for application development when you are using ACE.
- 慎用Reactor Notify机制
- 慎用Reactor Notify机制
- notify机制
- Android 中的notify 机制
- Android 中的notify 机制
- [转]Wait-Notify机制
- Android 中的notify 机制
- Android 中的notify 机制
- Wait-Notify机制
- wait notify 锁机制
- Wait-Notify机制
- Wait-Notify机制
- Reactor的事件处理机制
- Reactor的事件处理机制
- java中wait/notify机制
- MediaPlayer的notify监听机制
- java多线程: wait/notify机制
- java中wait/notify机制
- Enable smoothing on VideoDisplay
- QueryPerformanceFrequency Window下的高精度计时器
- javascript冒泡事件
- phpcms和dedecms比较
- 【Effective c++】条款11:在operator=中处理“自我赋值”
- 慎用Reactor Notify机制
- 尕福(散文)
- 前边带0的数字字符串与纯数字的相互转化
- mysql 常用的一些命令
- linux常用指令
- android init进程启动的大致流程
- 一种错误处理的写法(学习)
- 使用WinDbg抓取程序报错的Dump文件
- WEB 工程windows安装包制作