真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

c++設計模式之單例模式-創(chuàng)新互聯

1. 單例模式簡介

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

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

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

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(),可能產生兩個實例。

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

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

? 本文的用法如下:

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

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


網頁標題:c++設計模式之單例模式-創(chuàng)新互聯
本文來源:http://weahome.cn/article/dooepp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部