HANDLE CreateMutex(
LPSECURITY_ATTRIBUTES lpMutexAttributes, // 指向安全属性的指针
BOOL bInitialOwner, // 初始化互斥对象的所有者
LPCTSTR lpName // 指向互斥对象名的指针
);
/*通过写一个加锁的类来对共享的数据进行有效的安全控制,防止内存错误*/ class MTCMutex { public: MTCMutex() :_mutex(NULL) { this->_mutex = CreateMutex(NULL, FALSE, NULL); } virtual ~MTCMutex() { if (this->_mutex) { CloseHandle(this->_mutex); this->_mutex = NULL; } } MTCMutex(const MTCMutex& mutex){ *this = mutex; } MTCMutex& operator=(const MTCMutex& other) { if (this != &other) { this->_mutex = other._mutex; } return *this; } private: HANDLE _mutex; public: void Lock() { WaitForSingleObject(this->_mutex, INFINITE); } void UnLock() { ReleaseMutex(this->_mutex); } };
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/202622.html原文链接:https://javaforall.net
