单例模式。草稿

单例模式

结论:

1)全局变量是最简单,稍微有缺陷的单例模式。如: FileStream FS_TestFile("text.txt");但是需要到处extern.所有用类来的话,比较方便。

2)可以用一个函数或类的静态成员方法,返回局部静态对象的指针,实现单例模式。线程安全,但是没办法释放。只能等程序结束了。多线程释放感觉不太方便,要根据场景来。可以提供一个释放的方法。有把握就释放吧。否则等程序结束。

class LogSing
{
public:
    static AsynLog* CreateLog()
    {
        if(mylog==0)
        {
            mtx.lock();
            if(mylog==0)
            {
                mylog= new AsynLog(20*1024*1024,4);
            }
            mtx.unlock();
        }
        return mylog;
    }
    void Destroyit()
    {
        if(mylog!=0)
        {
            delete mylog;
        }
    }
private:
    static mutex mtx;
    static AsynLog * mylog;
};

 

 

posted @ 2016-12-01 15:07  琴鸟  阅读(202)  评论(1)    收藏  举报