C 單例模式

2021-06-10 06:22:24 字數 1336 閱讀 9146

實現方式一:
#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...