001_支持并发的两次判空懒汉单例
生活随笔
收集整理的這篇文章主要介紹了
001_支持并发的两次判空懒汉单例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
package com.zr.single;/*** 支持并發的兩次判空懶漢單例*/
public class TwiceJudgeNullLazySingleton {private TwiceJudgeNullLazySingleton() {}private static TwiceJudgeNullLazySingleton instance;public static TwiceJudgeNullLazySingleton getInstance() {// 第一次判空的意義在于: 其它線程訪問該對象實例時, 已經有了對象實例, 直接返回。if(instance == null){// 這里加類對象同步代碼塊的意義在于: 防止多個線程同時創建實例。synchronized(TwiceJudgeNullLazySingleton.class) {// 第二次判空的意義在于: 多個線程訪問創建該對象實例時, 由于創建對象實例的過程過慢, 多個線程都已經運行過了第一個判空。if(instance == null) {instance = new TwiceJudgeNullLazySingleton();}}}return instance;}
}
?
總結
以上是生活随笔為你收集整理的001_支持并发的两次判空懒汉单例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 得到Android设备的唯一id
- 下一篇: 002_支持并发的内部类饿汉单例