日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 线程安全的单例_线程安全的单例模式的几种实现

發布時間:2023/12/2 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 线程安全的单例_线程安全的单例模式的几种实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

單例模式是常見的設計模式之一:目的是節省內存,限制了實例的個數;有利于java GC回收機制。

單例模式的三個好處:

1.控制資源的使用,通過線程同步來控制資源的并發訪問

2.控制實例的產生個數,來達到節約資源的目的

3.作為通信媒介使用,在不建立連接的情況下,讓兩個不先關的進程和線程之間實現通信

單例模式分類: 餓漢模式(在類加載時便會創建對象);

懶漢模式(在外部第一次請求實例時才會創建實例);

登記式模式

單例模式特點:

1.單例類只有一個實例

2.單例類必須自己創建自己唯一的實例

3.單例類必須自己給其他類提供這一實例

1.懶漢模式:類加載時不會初始化,當外部第一次請求實例時才會創建實例;而且第一次創建后不在創建該實例;

特點是:運行時獲取對象的速度比較慢,但加載的時候比較快,它在整個生命的應用周期只占用一部分資源

//單例模式-懶漢式單例

public classLazySingleton {//私有靜態對象,加載時候不做初始化

private static LazySingleton jjy=null;//私有構造方法,避免外部創建實例

privateLazySingleton(){}/*** 靜態工廠方法,返回此類的唯一實例.

* 當發現實例沒有初始化的時候,才初始化.

*@returnLazySingleton*/

synchronized public staticLazySingleton getJjy(){if(jjy==null){

jjy=newLazySingleton();

}returnjjy;

}

}

2.餓漢模式:類加載時就會初始化,創建實例;

特點是:運行時獲取對象速度比較快,但加載時速度比較慢,會一直占用資源? (程序打開加載比較慢,但運行速度快---從用戶體驗角度來說推薦餓漢)

//單例模式-餓漢式單例

public class EagerSingleton {

//私有靜態對象,加載時候不做初始化

private static EagerSingleton jjy=new EagerSingleton();

// 私有構造方法,避免外部創建實例

private EagerSingleton(){}

/**

* 靜態工廠方法,返回此類的唯一實例.

*

*

*/

synchronized public static EagerSingleton getJjy(){

return jjy;

}

}

使用場景:數據庫連接池;網站計數器;

總結

以上是生活随笔為你收集整理的java 线程安全的单例_线程安全的单例模式的几种实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。