首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

实在不明白了,老说这个raii有有关问题

2012-07-28 
实在不明白了,老说这个raii有问题C/C++ code那里有问题啊class CMyMutex{HANDLE hMutexpublic:CMyMutex()

实在不明白了,老说这个raii有问题

C/C++ code
那里有问题啊class CMyMutex{HANDLE hMutex;public:CMyMutex(){hMutex=::CreateMutex(NULL,true,NULL);    //第二个参数,创建线程拥有互斥体};~CMyMutex(){::ReleaseMutex(hMutex);::CloseHandle(hMutex);}unsigned int MyThread1(void* ){//other codeCMyMutex mutex;/*dosomehing*/return 0;}unsigned int MyThread2(void* ){//other codeCMyMutex mutex;/*dosomehing*/return 0;}


[解决办法]
探讨

一个总体感觉就是:CMyMutex mutex;不应该在线程中而应该在线程外部创建,不同的线程用mutex这个对象来进行同步,如果在线程内创建,从通常的意义上来讲,就失去了mutex的意义。


这一句话,我第二次听到了,但是依然不懂, 所谓自动解锁,是靠着局部对象离开作用域,析构函数

里解锁。

如果用全局, 不得了了。

怎么解锁啊。

你能提供给一个全局的demo嘛……

热点排行