1多线程安全单例模式一(不使用同步锁).
1 1 public class Singleton {
2 2 private Singleton()
3 3 {}
4 4 private static Singleton singleton;
5 5
6 6 public static Singleton getInstance()
7 7 {
8 8 if(singleton ==null)
9 9 {
10 10 singleton =new Singleton();
11 11 }
12 12 return singleton;
13 13 }
14 14
15 15
16 16 }View Code
2.多线程安全单例模式一(使用同步锁).
public class Singleton {
private Singleton()
{}
private static Singleton singleton;
//sychronized 同步
public static synchronized Singleton getInstance()
{
if(singleton ==null)
{
singleton =new Singleton();
}
return singleton;
}
}
3.多线程安全单例模式一(使用双重同步锁).
public class Singleton {
private static Singleton instance;
private Singleton (){
}
public static Singleton getInstance(){ //对获取实例的方法进行同步
if (instance == null){
synchronized(Singleton.class){
if (instance == null)
instance = new Singleton();
}
}
return instance;
}
}