具有确定性破坏的线程安全单例

时间:2016-12-20 04:59:20

标签: c++ multithreading c++11 singleton double-checked-locking

我想创建一个线程安全的单例类。

实现相同(我所知道)的当前方法是在类中使用静态方法返回静态对象,如下所示:

Singleton & Singleton::getInstance()
{
    static Singleton instance;
    return instance;
}

使用这种方法的问题在于,由于创建的对象是静态的,因此在应用程序退出时会进行清理。理想情况下,我想控制破坏的确切发生时间。

我做了一些挖掘,发现我可以使用静态ptr实例方式并具有单独的清理功能,但为了使其线程安全,我将不得不使用具有显式内存屏障的双重检查锁定。

是否有更简单的理解(我不是专家)的方法来实现同样的目标?

0 个答案:

没有答案