黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

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

Java多線程單例模式

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

?單例對象(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);

}

}

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

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

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


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


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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 欧美一级鲁丝片免费看 | 九月色婷婷 | 久久午夜夜伦鲁鲁影院 | 久久综合九色综合97伊人麻豆 | 日韩成人在线播放 | 中文字幕一区二区三区免费看 | 久久精品免费观看 | 亚洲国产成人久久一区www | 波多野结衣在线中文字幕 | 欧美人善交vides0 | 站长工具天天爽视频 | 国产精品综合色区在线观看 | 男女国产一级毛片 | 国产一区二区三区美女秒播 | 最近的中文字幕在线看 | 羞羞网站视频 | 日本一本久 | 高清三级毛片 | 亚洲欧美一 | 在线视频观看一区 | 日韩一区二区不卡中文字幕 | 欧美午夜视频在线观看 | 欧美+日本+国产+在线观看 | 成年男女的免费视频网站 | 黄 色 大 片 网站 | 色香蕉在线 | 黄 色 免费网 站 成 人 | 91亚洲综合 | 一级毛片完整免费版 | 日韩欧美亚洲国产一区二区三区 | 色综合小说天天综合网 | 久久天天丁香婷婷中文字幕 | 亚洲第一区在线 | 黄免费视频 | 亚洲视频在线精品 | 亚洲免费国产 | ntr中文字幕亚洲综合 | 老司机毛片| 两个人免费视频www 两个人看的www中文字幕 | 又黄又爽又成人免费视频 | 青青草国产免费久久久91 |