DLL中局部静态变量释放时间
来源:互联网 发布:猴王水果在线竞猜源码 编辑:程序博客网 时间:2024/05/16 06:53
背景说明:
DLL中存在很多业务逻辑,包括网络连接的管理。DLL中的所有业务采用多线程管理,假设DLL中有两个工作线程WorkThread1和WorkThread2。DLL中存在一个日志记录系统,采用单件形式编写,单件实例的获取采用局部静态对象的方式。主控制类也采用了单件,单件实例获取同前。
1、主线程装载DLL,调用DLL接口并创建了主控制类单件;
2、WorkThread1中首次调用日志记录系统,所有局部静态对象在首次调用时创建;
3、卸载DLL,收到DLL_PROCESS_DETACH,然后调用主控制类的析构,这时调用日志单件则报错。原因是日志单件也释放。
4、日志记录单件和主控制类的单件的静态局部变量实例均由主线程释放,但日志单件实例释放较早,导致错误。
DLL中存在很多业务逻辑,包括网络连接的管理。DLL中的所有业务采用多线程管理,假设DLL中有两个工作线程WorkThread1和WorkThread2。DLL中存在一个日志记录系统,采用单件形式编写,单件实例的获取采用局部静态对象的方式。主控制类也采用了单件,单件实例获取同前。
1、主线程装载DLL,调用DLL接口并创建了主控制类单件;
2、WorkThread1中首次调用日志记录系统,所有局部静态对象在首次调用时创建;
3、卸载DLL,收到DLL_PROCESS_DETACH,然后调用主控制类的析构,这时调用日志单件则报错。原因是日志单件也释放。
4、日志记录单件和主控制类的单件的静态局部变量实例均由主线程释放,但日志单件实例释放较早,导致错误。
0 0
- DLL中局部静态变量释放时间
- C++中局部变量、全局变量、静态局部变量、静态全局变量
- C++ 中函数静态局部变量
- Java中静态变量,实例变量和局部变量
- Java中静态变量,成员变量,局部变量,常量
- Java 中局部变量、静态变量和实例变量区别
- java中成员变量、局部变量、静态变量的区别
- C语言中定义变量的技巧(全局变量、局部变量、静态全局变量、静态局部变量)
- c++中全局变量,全局静态变量,局部静态变量,局部变量的作用域和生命周期
- C语言中全局变量、全局静态变量、局部变量、局部静态变量
- DLL:线程局部变量
- iOS中block 静态全局局部变量block变量
- php中局部变量和全局变量 以及静态变量
- C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别
- C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别
- C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别
- C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别
- C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别
- 【深入Java虚拟机】之五:多态性实现机制——静态分派与动态分派
- Spring的几种工厂方法创建bean的总结
- jQuery/CSS3最新插件应用
- #pragma pack(n) 和 #pragma pack(push,1)
- Logger.getLogger()和LogFactory.getLog()的区别
- DLL中局部静态变量释放时间
- 【深入Java虚拟机】之六:Java语法糖
- audioFlinger 架构
- 4.0 以上插耳机让音乐在耳机播放,屏蔽掉喇叭播放
- 解决imp全库导入报错
- matlab 计时函数
- [整理]数据结构----位图法
- 【深入Java虚拟机】之七:Java编译与JIT编译
- Android OpenGL ES教程 第二部分 构建多边形