大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Java多線程單例模式

Java多線程單例模式

更新時間:2020-11-09 17:28:12 來源:動力節點 瀏覽1346次

?單例對象(Singleton)是一種常用的設計模式。在Java應用中,單例對象能保證在一個JVM中,該對象只有一個實例存在。正是由于這個特點,單例對象通常作為程序中的存放配置信息的載體,因為它能保證其他對象讀到一致的信息。對于一個軟件系統中的某些類而言,只有一個實例很重要,例如一個系統只能有一個窗口管理器或文件系統,一個系統只能有一個集市工具或ID生成器等等。本文就和大家一起探討一下在多線程環境下,單例模式的相關問題。

單例模式的定義:確保一個類只有一個實例,并提供一個全局訪問點來訪問這個唯一實例。


1. 單例對象的屬性(或成員變量)的獲取,是通過單例對象的初始化實現的。也就是說,在單例對象初始化時,會從文件或數據庫中讀取最新的配置信息。

2. 其他對象不能直接改變單例對象的屬性,單例對象屬性的變化來源于配置文件或配置數據庫數據的變化。

多線程單例模式的實現:


一、基于餓漢式單例:

實例代碼

public class Singleton {

private static Singleton instance = new Singleton();

private Singleton() {

}

public static Singleton getInstance() {

return instance;

}

public static void main(String[] args) {

// TODO Auto-generated method stub

Singleton s1, s2;

s1 = Singleton.getInstance();

s2 = Singleton.getInstance();

if(s1 == s2){

System.out.println("兩個對象是相同實例");

}

else{

System.out.println("兩個對象是不同實例");

}

}

}


二、基于懶漢式單例

實例代碼

public class Singleton {

private Singleton() {

}

//靜態內部類

private static class SingletonHandler {

private final static Singleton instance = new Singleton();

}

public static Singleton getInstance() {

return SingletonHandler.instance;

}

public static void main(String[] args) {

// TODO Auto-generated method stub

Singleton s1, s2;

s1 = Singleton.getInstance();

s2 = Singleton.getInstance();

System.out.println("兩個對象實例是否相同?");

System.out.println(s1 == s2);

}

}

三、餓漢式與懶漢式的比較:

餓漢式單例類在類加載時就將自己實例化,它的優點在于無需考慮多個線程同時訪問的問題,可以確保實例的唯一性;從調用速度和反應時間速度來講,由于單例對象一開始就得以創建,因此要優于懶漢式單例。但是無論系統在運行時是否需要使用該單例對象,由于在類加載時該對象就需要創建,因此從資源利用效率角度來講餓漢式單例不及懶漢式單例,而且在系統加載時由于需要創建餓漢式單例對象,加載時間可能會比較長。

懶漢式單例類在第一次使用時創建,無須一直占用系統資源,實現了延遲加載,但是必須要處理多個線程同時訪問的問題,特別是當單例類作為資源控制器,在實例化時必然涉及資源初始化,而資源初始化很有可能耗費大量時間,這意味著出現多線程同時首次引用此類的幾率比較大,需要通過同步化機制進行控制。


單例模式的主要優點在于提供了對唯一實例的受控訪問并可以節約系統資源;其主要缺點在于因為缺少抽象層而難以擴展,且單例類職責過重。至于我們在多線程中實際運用單例模式時采用惡漢式還是懶漢式單例類需要根據實際情況,對照上述的兩者的特征做出合適的選擇。


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 你懂得国产 | 久久噜噜噜| 一 级做人爱全视频在线看 一a级毛片 | 亚洲高清一区二区三区 | 欧美在线小视频 | 手机看片日韩日韩韩 | 激情免费网站 | 97在线观看视频免费 | 国产福利专区精品视频 | 国产区在线观看 | 久久精品成人免费网站 | 印度老妇bbwfreexxx | 五月天久久综合 | 美女视频久久 | 99热最新网址获取 | 在线成人a毛片免费播放 | 波多野结衣3女同在线观看 波多野结衣av1区2区3区 | 亚洲不卡视频 | 欧美一区二区三区在线观看 | 狠狠色噜噜狠狠狠狠狠色综合久久 | 爱爱视频免费网站 | 成人91在线 | 精品日产一区二区三区手机 | 国产精品伦理一区二区三区 | 欧洲a老妇女黄大片 | 中文在线免费不卡视频 | 老司机免费精品视频 | 日韩视频免费在线播放 | 亚洲国产精品欧美日韩一区二区 | 久久99精品国产99久久 | 天天操天天干天搞天天射 | 亚洲午夜在线观看 | 国产精品久久久久国产精品 | 久久久久久久99精品免费 | 天天天天干 | 天天射天天干天天舔 | 中文字幕一区二区日产乱码 | 久久最新视频 | 九月婷婷天天澡天天添天天爽 | 天天舔 | 精品国产品香蕉在线观看 |