静态互斥和非静态互斥之间的区别

dom*_*lao 2 c++ mutex

我在.cpp中有一个代码

namespapce A
{
    namespace
    {
        static CMutex initMutex;
    }

    void init()
    {
        //code here
    }

    void uninit()
    {
        //code here
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我删除互斥锁中的静态并且是否存在静态,有什么不同?静电有什么用?

谢谢!

Abh*_*t_K 5

如果互斥是静态的,并且如果它已经在标题中并且该标题包含在2个cpp文件中(2个转换单位),则第一个文件中的代码所应用的锁将不会被第二个文件看到,这是危险的.这是因为2个单元具有互斥的单独静态.在这种情况下,全局互斥是优选的.

如果这是C++,那么使用RAII机制来管理互斥锁和解锁.这是c ++,哪个类?将事物封装到一个类中.

RAII示例(基本的,事情可以封装到类中):http: //en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization