Thread-Safe的static data member初始化方法
2006-04-18 12:01
549 查看
对于static data member的initialization,如果是在multi-threading的环境下,可以采用如下方法初始化:
1 if (s_data == null)
2 {
3 lock (s_dummy) // here s_dummy cannot be null
4 {
5 if (s_data == null)
6 {
7 // initialize s_data here
8 }
9 }
}
这样做的好处是既不影响performance,又能确保thread-safe。
1 if (s_data == null)
2 {
3 lock (s_dummy) // here s_dummy cannot be null
4 {
5 if (s_data == null)
6 {
7 // initialize s_data here
8 }
9 }
}
这样做的好处是既不影响performance,又能确保thread-safe。
相关文章推荐
- C++ | static const integral data member在类中的初始化
- how to initialize Static data member in C++ (怎样初始化类的static数据成员)
- Java的static修饰变量,方法,代码块的初始化顺序
- static{}(即static块),会在类被加载的时候执行且仅会被执行一次,一般用来初始化静态变量和调用静态方法
- js data日期初始化的5种方法
- memory about static data member and static member function
- C++ Static Member Variable Initialization 静态成员变量初始化
- Item16 Make const member functions thread safe
- js data日期初始化的5种方法new Date()
- StaticCodeDemo.java:29: 错误: 方法声明无效; 需要返回类型 person(){//给对应的对象进行针对性的初始化。
- 初始化mysql数据库提示缺少Data:dumper模块解决方法
- 7 面向对象(成员变量和局部变量的区别,类作为形式参数的问题,匿名对象,封装,private关键字,this关键字,构造方法,类的初始化过程,static关键字)
- 初始化mysql数据库提示缺少Data:dumper模块解决方法
- Java中的static变量、方法、代码块初始化执行顺序
- js data日期初始化的方法
- 类中的static data member以及static member functions的用法
- Thread.SetData 方法
- C++类中各种不同类型成员根据是否static 、是否const类型的初始化方法不尽相同,写代码时经常搞乱,网上搜了一下资料,全部总结一下。一、例子 [cpp] view plaincopy ---
- js data日期初始化的5种方法