您的位置:首页 > 其它

多线程下的单例

2016-05-27 15:22 197 查看
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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: