single model
2016-07-23 15:06
381 查看
#include <iostream> #include <windows.h> using namespace std; class Single { public: static Single & GetInstance() { static Single _obj; return _obj; } void Print() { cout << "hello world : " << endl; } protected: Single() { } ~Single() { } }; class Single1 { public: static Single1 * GetInstance() { if (NULL == m_pSingle) { nCount++; m_pSingle = new Single1; } return m_pSingle; } void Print() { cout << "Single1: hello world : " << nCount << endl; } protected: Single1() { } ~Single1() { } private: static Single1* m_pSingle; static int nCount; }; class Single1 * Single1::m_pSingle = NULL; int Single1::nCount = 0; void WorkThread(void *pParam) { Sleep(rand()%100); Single::GetInstance().Print(); } void WorkThread1(void *pParam) { Sleep(rand()%100); Single1::GetInstance()->Print(); } int main(int argc, char *argv[]) { Single::GetInstance().Print(); ::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)WorkThread, NULL, 0, 0); ::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)WorkThread, NULL, 0, 0); ::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)WorkThread, NULL, 0, 0); ::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)WorkThread1, NULL, 0, 0); ::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)WorkThread1, NULL, 0, 0); ::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)WorkThread1, NULL, 0, 0); getchar(); }
相关文章推荐
- iOS开发常用代码(实用)
- Android上Sensor移植的总结
- 链表尾部增加结点,打印结点,删除结点
- Android -static变量的生命周期
- 【原创】遨游springmvc之原理篇
- Codeforces Round #364 (Div. 2) D. As Fast As Possible(数学推导)
- android学习笔记之调用拨号界面拨打电话
- 利用Application自身特性可以代替单利模式吗
- 网络聊天程序设计(文字+语音)
- import package的问题
- vector::cbegin (c++11)
- java常用类(基础)
- 临界区和互斥量的区别
- HDU 2087 剪花布条简单KMP
- hadoop map 与reduce 的流程
- MyBatis使用大全(4)------XML映射文件配置
- Python定时任务框架APScheduler 3.0.3 Cron示例
- 吴传之火烧连营
- Android 混淆配置文件(项目中的)
- IT--java--jdk参数设置