免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

c++設計模式之單例模式-創新互聯

1. 單例模式簡介

?在一個進程中,一個類僅創建一個唯一的實例,并提供一個訪問它的全局訪問點,該實例被所有程序模塊共享。
?主要應用場景有:日志記錄,配置管理,線程池,連接池,內存池等。

創新互聯是專業的三河網站建設公司,三河接單;提供網站制作、成都網站設計,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行三河網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!2. 如何定義一個單例

1. 構造函數私有化
包括普通構造函數,拷貝構造函數,賦值操作符重載函數,防止出現一個以上的實例。
2. 使用類的私有靜態指針變量指向類的唯一實例
3. 使用一個公有的靜態方法獲取該實例

3. 代碼實現
class Singleton
{
private:
?? ?static Singleton* instance;
private:
?? ?Singleton() {};
?? ?~Singleton() {};
?? ?Singleton(const Singleton&);
?? ?Singleton& operator=(const Singleton&);
public:
?? ?static Singleton* getInstance()?
? ? {
?? ??? ?if(instance == NULL)
?? ??? ??? ?instance = new Singleton();
?? ??? ?return instance;
?? ?}
};
?
// init static member
Singleton* Singleton::instance = NULL;
4. 線程安全

?線程安全問題根本原因:兩個線程同時調用getInstance(),可能產生兩個實例。

? 一般考慮加鎖的方式避免線程安全問題,但加鎖比較繁瑣,并且稍有不慎仍然可能出問題。

? 本文從用法上來避免線程安全問題,此方法簡單明了,不會出錯,適合大部分場景。

? 本文的用法如下:

? 在主線程中事先創建好實列,以后在其他線程中僅僅獲取該實例指針進行使用。

你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

當前名稱:c++設計模式之單例模式-創新互聯
分享網址:http://newbst.com/article38/dooepp.html

成都網站建設公司_創新互聯,為您提供移動網站建設品牌網站設計動態網站網站建設外貿建站全網營銷推廣

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網頁設計公司