實現方式一:
#include
template
<
typename
t>
class
singleton
:boost
::noncopyable
static
void
init
()private
:static
pthread_once_t
ponce_
;statict*
value_;};
template
<
typename
t>
pthread_once_t
singleton
<
t>::
ponce_
=pthread_once_init
;template
<
typename
t>t*
singleton
<
t>::
value_
=null
;
實現方式二:
#ifndef locker_h_
#define locker_h_
#include "pthread.h"
class locker
inline ~locker()
inline
void lock()
inline
void unlock()
private:
pthread_mutex_tmutex;
};#endif /* locker_h_ */
#ifndef __singleton_h__
#define __singleton_h__
template
class
singleton
;template
inline t* singleton::getinstance()
llocker.unlock();
returnt;
}template
inline
void singleton::release()
llocker.unlock();
}template
t* singleton::t = 0;
locker singleton::llocker
#endif // __single_h__
C 單例模式
include using namespace std 單例類的c 實現 class singleton 構造方法實現 singleton singleton void singleton setvar int var main int main int argc,char argv return ...
C 單例模式
效率有點低,但是還算安全的單例模式,靜態成員實現方式 class singleton public static singleton getinstance singleton singleton getinstance unlock return m instance 內部靜態例項的懶漢模式,c ...
C 單例模式
自從阿里 了回來就想寫一篇單例模式了,一直拖到現在,從前也查了好多,自我感覺還是乙個不錯的,背了下來,今天再查資料發現還是漏洞太多了,真的不的不佩服c 是多麼的強大啊!首先拿我之前的那個來分享 class csingleton static void release 必須,否則會導致記憶體洩露 pr...