在多线程环境中,有些事仅需要执行一次。通常当初始化应用程序时,可以比较容易地将其放在main函数中。但当你写一个库时,就不能在main里面初始化了,你可以用静态初始化,但使用一次初始化(pthread_once)会比较容易些。
首先要定义一个pthread_once_t变量,这个变量要用宏PTHREAD_ONCE_INIT初始化。
pthread_once_t once_control =PTHREAD_ONCE_INIT;
然后创建一个与控制变量相关的初始化函数。
void init_routine()
{
//各种初始化操作
......