多线程----单例设计模式-----饿汉式、懒汉式 (背也要背下来)
饿汉式:class Single
{
private static Single s = new Single();
private Single()
{}
public static Single getInstance()
{
return s;
}
}
饿汉式与懒汉式的区别:懒汉式的特点是实例延迟加载,在有多线程访问时存在安全问题,
可以加同步来解决,用双重判断可以解决效率低的问题
懒汉式使用的锁是 类名.class
懒汉式 class Single
{
private static Single s = null;
private Single()
{}
public static Single getInstance()
{
if (s == null)
{
synchronized(Single.class) //或synchronized(this)
{
if (s == null)
s = new Single();
}
}
return s;
}
}