lazy初始化和线程安全的单例模式
生活随笔
收集整理的這篇文章主要介紹了
lazy初始化和线程安全的单例模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.雙檢鎖/雙重校驗鎖(DCL,即 double-checked locking)
JDK 版本:JDK1.5 起
是否 Lazy 初始化:是
是否多線程安全:是
實現難度:較復雜
描述:這種方式采用雙鎖機制,安全且在多線程情況下能保持高性能。
getSingleton() 的性能對應用程序很關鍵。
?
package com.advance.singleton;/*** @Auther: 谷天樂* @Date: 2018/9/17 21:02* @Description:*/public class Singleton {private volatile static Singleton singleton;private Singleton (){}public static Singleton getSingleton() {if (singleton == null) {synchronized (Singleton.class) {if (singleton == null) {singleton = new Singleton();}}}return singleton;}public static void main(String[] args) {Singleton s1 = getSingleton();Singleton s2 = getSingleton();System.out.println(s1==s2);} }?
轉載于:https://www.cnblogs.com/Java-Starter/p/9664961.html
總結
以上是生活随笔為你收集整理的lazy初始化和线程安全的单例模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL进阶2
- 下一篇: sql注入问题-视图-事物-以及存储过程