单例设计模式中有两种模式;
一、饿汉式----最为常用
其代码如下:
class Single
{
private static Single s = new Single();
private Single(){}
public static Single getinstance()
{
return s;
}
}
二、懒汉式
其代码如下:
class Single
{
private static Single s = null;
private Single(){}
public static Single getinstance()
{
if (s==null) //(1)
{
synchronized (Single.class) //(2)>>>采用同步代码块来解决多线程访问安全问题!注意:::加同步时所
// 使用的锁是:类的字节码文件Single.class
{
if (s==null) //(3)
{
s = new Single;
}
}
}
return s;
}
}
懒汉式的特点:延迟加载,当多线程访问量,会出现安全问题;故要用同步代码块来解决(代码中的(2)),然而这样会使代码的效率低下,故采用双重否定来解决效率问题(代码中的(1)(3))。