-1

我正在用 C++ 实现一个线程安全的单例类。我需要一种方法来初始化保护该getInstance()方法的互斥锁。

这是一个自包含的共享库,所以我不能使用另一个类的互斥锁,我必须找到一种方法在类中初始化它。

该库必须移植到各种平台,所以让我们考虑互斥锁是:

static void * OS_mutex;

并初始化它你使用

OS_Mutex_Init ( void * mutex);

我试图实现一个嵌套类,在它的构造函数中我初始化了 OS_mutex 结构。

但我遇到了一些麻烦,有没有人知道实现我需要的方法?任何参考资料或链接将不胜感激。

4

1 回答 1

0

首先,将其声明为变量:

static MyStruct OS_Mutex;

在哪里:

struct MyStruct
{
    void* pointer;
    MyStruct() : pointer(0)
    {
        // Called on initialization of global variables by the CRT

        // You can call here your function OS_Mutex_Init()
        // Or you can use lazy initialization (leave the pointer to 0,
        // and initialize it only when someone needs it)
    }
};

那么,这两个答案可能会对您有所帮助:

于 2012-12-11T16:04:23.937 回答