阅读以下函数说明和Java代码,将应填入(n)处的字句写在对应栏内。 [说明] 很多时候,希望某些类只有一个或有限的几个实例,典型解决方案是所谓单身(Singleton)模式。但在多线程情况下,Singleton模式有可能出现问题,需要进行

admin2010-12-17  32

问题 阅读以下函数说明和Java代码,将应填入(n)处的字句写在对应栏内。
   [说明]
   很多时候,希望某些类只有一个或有限的几个实例,典型解决方案是所谓单身(Singleton)模式。但在多线程情况下,Singleton模式有可能出现问题,需要进行同步检查。如果对“检查singleton对象是否已经创建”进行同步,则存在严重的瓶颈,所有的线程都必须等待检查对象是否存在。解决方式是一种称为Double-Checked-Locking模式,其意图是将非必须的锁定优化掉,同步检查最多只发生一次,因此不会成为瓶颈。以下是Java语言实现,能够正确编译通过。
   [Java代码]
   public class USTax {
   private static USTax instance=null;
     (1)  USTax(){}
   private  (2)  static void doSync(){
   if(instance==null){
   System.out.println("实例不存在,创建实例..");
   instance=(3);
   System.out.println("实例创建成功");
   }else{
   System.out.println("实例已被创建了");
   }
   }
   public static USTax getInstance(){
   if(instance==null){
   System.out.println("实例暂时不存在");
     (4);//同步控制
   }else{
   System.out.println("实例已经存在");
   }
   return  (5);
   }
   }
(4)

选项

答案doSync()

解析 空(4)处要进行同步控制,故此处应调用同步函数doSync(),故空(4)应填doSync()。
转载请注明原文地址:https://kaotiyun.com/show/zvDZ777K
0

随机试题
最新回复(0)