package com.peanut.singleton;
/**
* 多线程下正确的单例模式写法
* Created by peanut on 2016/4/25.
*/
public class SingletonDemo {
private SingletonDemo() {
}
//synchronized
private static SingletonDemo instance;
private synchronized static SingletonDemo getInstance() {
if (instance == null)
instance = new SingletonDemo();
return instance;
}
//2、volatile+双重检查锁定
private volatile static SingletonDemo instance1;
private static SingletonDemo getInstance1() {
if (instance1 == null) {
synchronized (SingletonDemo.class) {
if (instance1 == null) {
instance1 = new SingletonDemo();
}
}
}
return instance1;
}
//3、静态内部类实现
private static class SingletonHolder {
private static SingletonDemo instance2 = new SingletonDemo();
}
private static SingletonDemo getInstance2() {
return SingletonHolder.instance2;
}
}
多线程下单例模式的正确写法
最新推荐文章于 2024-08-09 19:09:04 发布
本文详细介绍了在多线程环境下实现单例模式的三种方法:使用同步锁、volatile关键字和静态内部类,旨在确保线程安全并提供高效实例化。
11

被折叠的 条评论
为什么被折叠?



