93. Singleton();
94.
95. static CMutex mutex;
96. static Singleton * instance;
97.};
98.Singleton * Singleton::instance = 0;
99.CMutex Singleton::mutex;
100.
101.Singleton::Singleton()
102.{
103.
104.}
105.
106.Singleton::~Singleton()
107.{
108.
109.}
110.
111.Singleton * Singleton::Instance()
112.{
113. mutex.Lock();
114.
115. if (instance == 0) {
116. Sleep(1000);
117. instance = new Singleton();
118. }
119.
120. mutex.Unlock();
121.
122. return instance;
123.}
此外需要#include < afxmt.h>,,并且在项目设置中要设置动态链接MFC库。
Java Singleton模式:
124.public class Singleton {
125.
126. private static Singleton instance;
127. private static Object lock = Singleton.class;
128.
129. public static Singleton getInstance() {
130. synchronized (lock) {
131. if (instance == null)
132. instance = new Singleton();
133.
134. return instance;
135. }
136. }
137.
138. /** *//** Creates a new instance of Singleton */
139. private Singleton() {
140. }
141.}
运用加锁就可以解决在多线程环境下使用Singleton模式所带来的问题了。
相关报道:
- 《星球大战:前线》全新演示:刺激的步行者攻击模式2015-09-14
- 《星球大战:前线》新模式Blast:星战版团队死亡竞赛2015-07-31
- 芒果TV模式能否被传统电视台复制?2015-01-05
- Twitter并未衰亡 亟需开辟新模式拓展收入和用户2014-05-06
- 学习娱乐两不误 高性价比影音本推荐2014-03-17
本类最新
本类最热
科技视界
要闻推荐
今日视点
热点专题
新闻图片
- 新闻排行
- 评测排行