单身模式自身存在问题的解决(通过Double-Checked-Locking模式解决的java代码)
代码如下:
public class USTax{
private static USTax instance=null;//
private USTax(){}//设为private,以防止外部对这个类进行直接实例化。
private synchronized static void doSync(){ //为了进行同步控制
if(instance==null){
System.out.println("实例不存在,创建实例...");
instance=new USTax();//创建一个USTax实例
System.out.println("实例创建成功");
}else{
System.out.println("实例已被创建了");
}
}
public static USTax getInstance(){
if(instance==null){
System.out.println("实例暂时不存在");
doSync();//要进行同步控制,故此处应调用同步函数doSync()
}else{
System.out.println("实例已经存在");
}
return instance;
}
}

浙公网安备 33010602011771号