问题 问答题

[说明]
很多时候,希望某些类只有一个或有限的几个实例,典型解决方案是所谓单身(singleton)模式。但在多线程情况下,singleton模式有可能出现问题,需要进行同步检查。如果对“检查singleton对象是否已经创建”进行同步,则存在严重的瓶颈,所有的线程都必须等待检查对象是否存在。解决方式是一种称为Double-Checked-Locking模式,其意图是将非必须的锁定优化掉,同步检查最多只发生一次,因此不会成为瓶颈。以下是C++语言实现,能够正确编译通过。
[C++代码]
class USTax
______:
USTax( ) ; //构造函数
public:
static USTax* getInstance();
private:
static USTax* instance;
;
______ = NULL;
USTax* USTax∷getInstance()
if (instance == NULL)
//进行某种同步
cout<<"实例暂时不存在"<<endl;
if(______)
cout<<"实例不存在,创建实例... "<<endl;
instance = ______;
cout <<"实例创建成功 "<<endl;

else
cout <<"实例已被创建了"<<endl;


else
cout<<"实例已经存在" <<endl;

return ______;

答案

参考答案:private
USTax*USTax∷instance
instance==NULL
new USTax
instance

单项选择题
单项选择题