线程安全的C++的Singleton实现
来源:互联网 发布:淘宝3d试衣技术 编辑:程序博客网 时间:2024/04/27 09:58
//文章参见: http://www.2maomao.com/blog/when-cplusplus-meet-singleton/
//------------------Implementation #1 ----------------------
//s.h
class Singleton {
private:
Singleton();
static Singleton* instance_;
public:
static Singleton* getInstance() {
if (!instance_)
instance_ = new Singleton();
return instance_; } };
//s.cpp
Singleton* Singleton::pInstance_ = 0;
//------------------Implementation #2 ----------------------
//s.h
class Singleton {
private:
Singleton();
public:
static Singleton* getInstance() {
static Singleton* instance_ = new Singleton();
return instance_; } };
//------------------Implementation #1.1 ----------------------
//s.h
class Singleton {
private:
Singleton();
static Singleton* instance_;
public:
static Singleton* getInstance() {
lock_mutex();
if (!instance_)
instance_ = new Singleton();
unlock_mutex();
return instance_; } };
//s.cpp
Singleton* Singleton::pInstance_ = 0;
//------------------Implementation #1.2 ----------------------
//s.h
class Singleton {
private:
Singleton();
static Singleton* instance_;
public:
static Singleton* getInstance() {
if (!instance_) {
lock_mutex();
if (!instance_)
instance_ = new Singleton();
unlock_mutex();}
return instance_; } };
//s.cpp
Singleton* Singleton::pInstance_ = 0;
//------------------Implementation #1.3 ----------------------
//s.h
class Singleton {
private:
Singleton();
static Singleton* instance_;
static int flag_;
public:
static Singleton* getInstance() {
if (!flag_) {
lock_mutex();
if (!instance_)
instance_ = new Singleton();
unlock_mutex();}
flag_ = 1;
return instance_; } };
//s.cpp
Singleton* Singleton::pInstance_ = 0;
Singleton* Singleton::flag_ = 0;
//------------------Implementation #1 ----------------------
//s.h
class Singleton {
private:
Singleton();
static Singleton* instance_;
public:
static Singleton* getInstance() {
if (!instance_)
instance_ = new Singleton();
return instance_; } };
//s.cpp
Singleton* Singleton::pInstance_ = 0;
//------------------Implementation #2 ----------------------
//s.h
class Singleton {
private:
Singleton();
public:
static Singleton* getInstance() {
static Singleton* instance_ = new Singleton();
return instance_; } };
//------------------Implementation #1.1 ----------------------
//s.h
class Singleton {
private:
Singleton();
static Singleton* instance_;
public:
static Singleton* getInstance() {
lock_mutex();
if (!instance_)
instance_ = new Singleton();
unlock_mutex();
return instance_; } };
//s.cpp
Singleton* Singleton::pInstance_ = 0;
//------------------Implementation #1.2 ----------------------
//s.h
class Singleton {
private:
Singleton();
static Singleton* instance_;
public:
static Singleton* getInstance() {
if (!instance_) {
lock_mutex();
if (!instance_)
instance_ = new Singleton();
unlock_mutex();}
return instance_; } };
//s.cpp
Singleton* Singleton::pInstance_ = 0;
//------------------Implementation #1.3 ----------------------
//s.h
class Singleton {
private:
Singleton();
static Singleton* instance_;
static int flag_;
public:
static Singleton* getInstance() {
if (!flag_) {
lock_mutex();
if (!instance_)
instance_ = new Singleton();
unlock_mutex();}
flag_ = 1;
return instance_; } };
//s.cpp
Singleton* Singleton::pInstance_ = 0;
Singleton* Singleton::flag_ = 0;
- singleton 线程安全的singleton
- 线程安全的C++的Singleton实现
- c# SingleTon的线程安全(存档)
- 线程安全的singleton
- 线程安全的singleton
- 线程安全的singleton
- C++实现线程安全的Singleton
- 线程安全的 C++ Singleton 实现
- C++ 线程安全的singleton如何实现
- Singleton的安全实现!
- 线程安全的singleton实例
- 线程安全的Singleton模式的Java实现
- singleton模式四种线程安全的实现
- singleton模式四种线程安全的实现
- singleton模式四种线程安全的实现
- singleton模式四种线程安全的实现
- Reproduced:线程安全的 Singleton - Visual Basic
- 编写线程安全的单件(Singleton)
- 最终版 Android 3.0 平台和 SDK 工具更新
- Userinit.exe
- 警告对话框AlertDialog的使用
- Windows 7下VS2008破解90天限制的激活升级方法(支持简体中文,英文,繁体中文)
- 格式化I/O函数
- 线程安全的C++的Singleton实现
- 用主体+插件的方式构造软件
- C++/C 出现较多的面试题的答案与评分标准
- Thread.Join()和Thread.Sleep()
- 字符串和内存操作函数
- SQL2005级联删除,层叠,设置空,设置默认值
- 后台注册脚本文件
- 开篇
- linux下安装jdk