线程安全的单例模式 -- 使用pthread_once一次初始化

本文介绍了如何使用pthread_once实现线程安全的一次初始化,特别是在编写库时,避免在main函数中初始化。这种方法比静态初始化更简便。以muduo C++网络库的单例模式为例,阐述其使用方法。
摘要由CSDN通过智能技术生成

一次初始化用到的API:

pthread_once_t once_control = PTHREAD_ONCE_INIT;

int pthread_once(pthread_once_t* once_control, void (*init_routine)(void));

有些事需要一次且仅需要一次执行。通常当初始化应用程序时,可以比较容易地将其放在main函数中。但当你写一个库时,就不能在main里面初始化了,你可以用静态初始化,但使用一次初始化(pthread_once_t)会比较容易些。
转自:http://www.cnblogs.com/mywolrd/archive/2009/02/16/1930699.html
实例:

#include <pthread.h>  
#include "errors.h" 

pthread_once_t once_block = PTHREAD_ONCE_INIT;  
pthread_mutex_t mutex; 

/*This i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值