首页 > 其他 > 详细

ACE中的单例

时间:2014-04-12 13:16:08      阅读:616      评论:0      收藏:0      [点我收藏+]

ACE中有两种单例ACE_SingletonACE_Unmanaged_Singleton

(1)ACE_Singleton会随即想ACE_Object_Manager登记该单体实例,ACE_Object_Manager承担了在程序终止时销毁单体实例的任务;

(2)ACE_Unmanaged_Singleton并不向ACE_Object_Manager登记实例,销毁单体需要显示的调用ACE_Unmanaged_Singleton::close(),一般在DLL种定义单体时采用ACE_Unmanaged_singleton. 

例如:

typedef ACE_Unmanaged_Singleton< Connector,ACE_Recursive_Thread_Mutex> CONNECTOR; 

定义了一个用于在dll中使用的单体,单一引用了一个Connector的对象,这个单例使用了线程递归互斥体ACE_Recursive_Thread_Mutex,这种互斥体通常用在需要回调驱动的C++框架中。比如Proactor框架。这个单体应该在dll被卸载的时候比如fini方法的end_event_loop()之前调用CONNECTOR::close();

对于多个dll中共同使用的全局单例,则不应该使用ACE_Unmanaged_Singleton,而应该使用ACE_Singleton ,


本文参考:

http://andylin02.iteye.com/blog/431793


ACE中的单例,布布扣,bubuko.com

ACE中的单例

原文:http://blog.csdn.net/calmreason/article/details/23428737

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!