单例模式

单例模式是指设计一个只能构造一个对象的类。简单来说就是在一个进程运行过程中只可以存在一个该类的对象。

单例模式的对象获得设计方式

A* getA()
{
    if(_a == NULL)
    {
        lock()
        if(_a == NULL)
        {
            _a = new A();
        }
    }
    return _a;
}

static A* _a;

对于以上代码,有人可能会有以下疑问:

  1. 为什么要加锁
  2. 为什么要两层if判断

单例模式的双重if判断与线程安全

 

相关文章: