读书人

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

发布时间: 2012-07-28 12:25:13 作者: rapoo

实在不明白了,老说这个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嘛……

读书人网 >C语言

热点推荐