多线程环境单例模式 : 双重检测+上锁
public class Singleton {
/**
* 构造器私有化防止被公共创建
*/
private Singleton() {
}
//创建多线程锁
private static Object lock = new Object();
//单例本体
private static Singleton singleton = null;
//获取单例
public static Singleton getInstance() {
//当多线程环境中单例本体为空
if (singleton == null) {
//上锁防止被其他线程抢夺
synchronized (lock) {
//双重检查更加安全和符合业务场景
if (singleton == null) {
//加锁和双重检测后初始化单例
singleton = new Singleton();
}
}
}
//返回单例结果
return singleton;
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。