大战熟女丰满人妻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);

}

}

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

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

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


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


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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 久久精品国产丝袜 | 国产一区二区不卡 | 亚洲精品不卡午夜精品 | 五月婷网 | 四虎影视4hutv最新地址在线 | 综合色天天 | 国产日韩高清一区二区三区 | 国产精品原创 | 久草视频福利在线观看 | 欧美一级毛片免费播放aa | 看毛片网| 亚洲精品不卡午夜精品 | 国产精品久久久久久久久ktv | 国产网红自拍 | 亚洲久久成人 | 中文字幕在线观看第二页 | 国产精品视频免费在线观看 | 国产在线视频你懂得 | 咪咪爱在线视频 | 成人性视频网站 | 国产在线一区在线视频 | 激情五月婷婷红人馆 | 婷婷爱五月 | 天天干天天操天天添 | 91国内精品视频 | 久久er国产精品免费观看2 | 国四虎影永久 | 青青青在线视频 | 久久精品国产清白在天天线 | 一区二区三区四区日韩 | 成人欧美一区二区三区 | 九九九热在线精品免费全部 | 四虎影院网址大全 | 99久久影院| 日日摸夜夜添夜夜添一区二区 | 午夜欧美性欧美 | 日本欧美三级 | 毛片免| 亚洲国产最新在线一区二区 | 天天操天天干天天透 | 一级免费看片 |