老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)

C++如何實現(xiàn)一個線程安全的單例工廠

這篇文章主要介紹C++如何實現(xiàn)一個線程安全的單例工廠,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)哈爾濱,十余年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

  C++實現(xiàn)一個線程安全的單例工廠實現(xiàn)代碼

我們見到經(jīng)常有人用 static 局部對象的方式實現(xiàn)了類似單例模式,最近發(fā)現(xiàn)一篇文章明確寫明 編譯器在處理  static局部變量的時候 并不是線程安全的 !!!

http://blogs.msdn.com/b/oldnewthing/archive/2004/03/08/85901.aspx    

于是實現(xiàn)了一個單例工廠  并且是線程安全的

#ifndef SINGLETONFACTORY_H 
#define SINGLETONFACTORY_H 
#include "windows.h" 
#include  
namespace Tools 
{ 
templateclass SingletonFactory 
{ 
public: 
  virtual ~SingletonFactory() 
  { 
   ::DeleteCriticalSection(&__criticalSection); 
  } 
  std::auto_ptr& GetInstance(); 
  static SingletonFactory* CreateSingletonFactory(); 
private: 
  SingletonFactory() 
  { 
    ::InitializeCriticalSection(&__criticalSection); 
  } 
  std::auto_ptr __singletonObj; 
  CRITICAL_SECTION __criticalSection; 
}; 
 
//初始化創(chuàng)建 后續(xù)在多線程中使用 
//還有另一種寫法是單獨的函數(shù)直接返回內(nèi)部單例包裝靜態(tài)成員在 多線程情況下不安全 
//SingletonFactory::CreateSingletonFactory().GetInstance(); 
template SingletonFactory* SingletonFactory::CreateSingletonFactory(){ 
  static SingletonFactory temObj; 
  return &temObj; 
} 
//工廠實例 
template std::auto_ptr& SingletonFactory::GetInstance() 
{ 
  if(__singletonObj.get()==0) 
  { 
    ::EnterCriticalSection(&__criticalSection); 
    if(__singletonObj.get()==0) 
      __singletonObj=std::auto_ptr(new T); 
    ::LeaveCriticalSection(&__criticalSection); 
  } 
  return __singletonObj; 
} 
} 
 
#endif // SINGLETONFACTORY_H

測試代碼

SingletonFactory*singleton1=SingletonFactory::CreateSingletonFactory(); 
singleton1->GetInstance()->x=100; 
cout<GetInstance()->x<GetInstance()->y=200; 
cout<GetInstance()->x<GetInstance()->y<*singleton2=SingletonFactory::CreateSingletonFactory(); 
singleton2->GetInstance()->x=100; 
cout<GetInstance()->x<GetInstance()->y=200; 
cout<GetInstance()->x<GetInstance()->y<

以上是“C++如何實現(xiàn)一個線程安全的單例工廠”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


本文標(biāo)題:C++如何實現(xiàn)一個線程安全的單例工廠
轉(zhuǎn)載來于:http://www.xueling.net.cn/article/picegp.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 国产产一区二区三区久久毛片国语 | 国产一区二区日韩精品 | 久久精品国产第一区二区三区 | 亚洲不卡一卡2卡三卡4卡5卡 | 程视频精品视频一区二区三区欧 | 亚洲综合不卡 | 91大神视频在线免费观看 | 快穿妲己高H荡肉呻吟NP | 高潮绝顶抽搐大叫久久精品 | 成人免费共享视频 | 久久午夜剧场 | 亚洲无吗一区 | 麻豆人人妻人人妻人人片AV | 少妇扒开腿让我爽了一夜 | 看全色黄大色大片免费无码 | jjzz国产 | 男女啪啪做爰高潮无遮挡 | 亚洲午夜精品久久久久久性色 | 综合天堂av久久久久久久 | 国产AV熟女一区二区三区 | 全篇肉高h秘书被c办公室有图 | 国产精品国产三级国产av品爱网 | 又大又粗又硬又爽黄毛少妇 | 韩国一大片a毛片 | 亚洲精选无码久久久 | 欧洲人妻丰满AV无码久久不卡 | 蜜桃视频在线观看一区 | 亚洲在女同久久中文字幕 | 亚洲日本无码AA在线播放 | 欧美一级在线播放 | 亚洲AV日韩AV永久无码色欲 | 777亚洲欧美日韩精品中文中字幕 | 国产漂亮白嫩美女在线观看 | 精品人妻系列无码专区久久 | 国产在线播精品第三 | 日韩在线免费播放 | 色婷婷亚洲综合 | 精品视频免费久久久看 | 白丝袜美女扒开内衣网站 | 日本三级日本三级韩国三级视 | 又爽又黄又无遮挡网站动态图 |