立即学习:https://edu.csdn.net/course/play/9377/196526?utm_source=blogtoedu
1.设计模式
老外 先有项目,后有设计模式
中国 硬套设计模式
2. 单例模式
3. 单例模式在多线程中的使用
双重锁定(双重检查)
在GetInstance中两个if(m_instance==NULL);
//
if(m_instance==NULL){
std::unique_lock<mutex> mymutex(resource_mutex);
if(m_instance==NULL){
m_instance=new MyCAS();
static CFarhuishou cl; //类套类,为了delete m_instance.
}
}
4. std::call_once() //c++11引入的函数,该函数第二个参数是一个函数名a();
call_once功能是保证函数a()只执行一次。
static std::once_flag g_flag;
std::call_once(g_flag,CreateMyinstance);
总结:最好在主线程中先创建instance,避免单例共享代码的问题。