中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

南昌手機網(wǎng)站建設(shè)找資源

南昌手機網(wǎng)站建設(shè),找資源,裝修公司接單平臺,做網(wǎng)站的標(biāo)簽及屬性文章目錄 一.單例模式二.單例模式的兩種實現(xiàn)方式餓漢模式懶漢模式 一.單例模式 一個類只能創(chuàng)建一個對象,這樣的類的設(shè)計模式就稱為單例模式,該模式保證系統(tǒng)中該類只能有一個實例(并且父子進程共享),一個很典型的單例類就是CSTL的內(nèi)存池C單例模式的基本設(shè)計思路: 私有化構(gòu)造函數(shù)…

在這里插入圖片描述

文章目錄

  • 一.單例模式
  • 二.單例模式的兩種實現(xiàn)方式
    • 餓漢模式
    • 懶漢模式

一.單例模式

  • 一個類只能創(chuàng)建一個對象,這樣的類的設(shè)計模式就稱為單例模式,該模式保證系統(tǒng)中該類只能有一個實例(并且父子進程共享),一個很典型的單例類就是C++STL的內(nèi)存池
  • C++單例模式的基本設(shè)計思路:
    • 私有化構(gòu)造函數(shù),刪除默認的拷貝構(gòu)造函數(shù)賦值運算符重載防止對象被直接創(chuàng)建和拷貝
    • 單例對象的內(nèi)存資源可以交給操作系統(tǒng)來釋放,也可以自定義析構(gòu)函數(shù)來完成特殊操作

二.單例模式的兩種實現(xiàn)方式

餓漢模式

  • 餓漢單例類在程序進入主函數(shù)之前就創(chuàng)建出唯一的實例
//餓漢單例模式
class HungerSingleton
{
public://定義一個可以訪問單例對象的靜態(tài)接口static HungerSingleton* Getinstance(){return &singleObj;}
private://構(gòu)造函數(shù)私有化,防止對象被直接創(chuàng)建HungerSingleton() { cout << "單例對象創(chuàng)建" << endl; }//刪除拷貝接口,防止對象被拷貝HungerSingleton(const HungerSingleton& single) = delete;HungerSingleton& operator=(const HungerSingleton& single) = delete;private://定義靜態(tài)區(qū)的HungerSingleton成員static HungerSingleton singleObj;//也可以定義成指針,初始化時在堆上創(chuàng)建//static HungerSingleton* singleObj;
};
//初始化類的靜態(tài)成員
HungerSingleton HungerSingleton::singleObj;
//初始化時在堆上創(chuàng)建
//HungerSingleton * HungerSingleton::singleObj = new HungerSingleton;
  • HungerSingleton靜態(tài)成員變量自身類型的對象(或指針),類的靜態(tài)成員變量在進入主函數(shù)之前就完成初始化,由于構(gòu)造函數(shù)被私有化,因此在程序運行過程中無法再創(chuàng)建該類的對象
  • 餓漢單例模式的優(yōu)勢:
    • 由于子進程只能在主函數(shù)中被創(chuàng)建,因此餓漢單例類不存在線程安全問題,無需與其他線程的類競爭系統(tǒng)資源,在多線程高并發(fā)環(huán)境下能夠較為高效地執(zhí)行任務(wù)
  • 餓漢單例模式的劣勢:
    • 如果一個程序中有多種餓漢單例類,我們無法控制它們的初始化順序
    • 餓漢單例類會拖慢程序的啟動速度,而且即便用不到該類也會創(chuàng)建一個實例,可能造成內(nèi)存浪費

懶漢模式

  • 懶漢單例類在程序進入主函數(shù)之后由后續(xù)代碼決定是否創(chuàng)建實例
//懶漢單例模式
class LazySingleton
{
public://定義一個可以訪問單例對象的靜態(tài)接口static LazySingleton* Getinstance(){//若singleObj為空指針則創(chuàng)建單例對象if (singleObj == nullptr){singleObj = new LazySingleton;}return singleObj;}
private://構(gòu)造函數(shù)私有化,防止對象被創(chuàng)建LazySingleton() { cout << "單例對象創(chuàng)建" << endl; }//刪除拷貝接口,防止對象被拷貝LazySingleton(const LazySingleton& single) = delete;LazySingleton& operator=(const LazySingleton& single) = delete;private://定義成靜態(tài)成員指針,初始化時在堆上創(chuàng)建static LazySingleton* singleObj;
};
//初始化時設(shè)置成空指針
LazySingleton * LazySingleton::singleObj = nullptr;
  • LazySingleton類在第一次調(diào)用Getinstance()成員接口時才會創(chuàng)建實例
  • 懶漢單例模式的優(yōu)勢:
    • 可以控制多種懶漢單例類對象的初始化順序,并且需要用到的時候才創(chuàng)建,避免了內(nèi)存浪費
  • 懶漢單例模式的劣勢:
    • 在多線程環(huán)境中存在線程安全問題,需要加鎖
      在這里插入圖片描述
http://www.risenshineclean.com/news/30548.html

相關(guān)文章:

  • php網(wǎng)站開發(fā)案例教程廣告聯(lián)盟app下載官網(wǎng)
  • 上海做網(wǎng)站 公司排名視頻號排名優(yōu)化帝搜軟件
  • 做網(wǎng)站要多少錢呀產(chǎn)品推廣步驟
  • 泰達建設(shè)集團網(wǎng)站廈門最快seo
  • 免費域名建站鄭州網(wǎng)站推廣電話
  • 服務(wù)好的網(wǎng)站制作鄭州seo排名優(yōu)化
  • 定制網(wǎng)站建設(shè)公司費用搜狗收錄查詢
  • wordpress 目錄遍歷電腦優(yōu)化設(shè)置
  • 10_10_微信里網(wǎng)站怎么做的seo搜索如何優(yōu)化
  • 漂亮的手機網(wǎng)站模板北京優(yōu)化seo排名優(yōu)化
  • 建網(wǎng)站的要求寧波優(yōu)化關(guān)鍵詞首頁排名
  • 做微商賣產(chǎn)品在哪個網(wǎng)站銷量能好點公司seo營銷
  • 做淘寶需要知道什么網(wǎng)站嗎seo技術(shù)網(wǎng)網(wǎng)
  • 萬網(wǎng)官方網(wǎng)站排名優(yōu)化價格
  • 大連網(wǎng)絡(luò)宣傳網(wǎng)站寧波seo關(guān)鍵詞如何優(yōu)化
  • 本機做web打開網(wǎng)站無法顯示網(wǎng)站seo怎么推排名
  • 做外貿(mào)一般去什么網(wǎng)站找客戶上海推廣服務(wù)
  • 建站網(wǎng)站排行榜北京seo排名收費
  • 網(wǎng)站營銷網(wǎng)畫質(zhì)優(yōu)化app下載
  • 網(wǎng)站修改關(guān)鍵詞雙橋seo排名優(yōu)化培訓(xùn)
  • 江門網(wǎng)站建設(shè)企業(yè)商丘seo排名
  • 網(wǎng)站基本維護seo技術(shù) 快速網(wǎng)站排名
  • 投資做網(wǎng)站廣告媒體資源平臺
  • 國內(nèi)攝影作品網(wǎng)站免費建網(wǎng)站的步驟
  • 東莞網(wǎng)站優(yōu)化中易品牌推廣渠道有哪些
  • 做的網(wǎng)站怎么讓百度收索時搜seo實戰(zhàn)指導(dǎo)
  • 嵐山網(wǎng)站建設(shè)報價山東網(wǎng)絡(luò)推廣網(wǎng)站
  • iis2008如何做網(wǎng)站百度知道合伙人
  • 徐州萬網(wǎng)網(wǎng)站建設(shè)seo優(yōu)化上首頁
  • 利用云服務(wù)器做網(wǎng)站谷歌推廣哪家好