[C++] Mutex锁 →→→→→进入此内容的聊天室

来自 , 2021-02-22, 写在 C++, 查看 111 次.
URL http://www.code666.cn/view/e4dd5528
  1. #ifndef SYNOBJ_H
  2. #define SYNOBJ_H
  3.  
  4. #include <windows.h>
  5.  
  6. #define CLASS_UNCOPYABLE(classname) \
  7.     private: \
  8.     classname(const classname&); \
  9.     classname& operator=(const classname&);
  10.  
  11. class Mutex {
  12.     CLASS_UNCOPYABLE(Mutex)
  13. public:
  14.     Mutex() :_cs() { InitializeCriticalSection(&_cs); }
  15.     ~Mutex() { DeleteCriticalSection(&_cs); }
  16.     void lock() { EnterCriticalSection(&_cs); }
  17.     void unlock() { LeaveCriticalSection(&_cs); }
  18. private:
  19.     CRITICAL_SECTION _cs;
  20. };
  21.  
  22. class Lock {
  23.     CLASS_UNCOPYABLE(Lock)
  24. public:
  25.     explicit Lock(Mutex& cs) :_cs(cs) { _cs.lock(); }
  26.     ~Lock() { _cs.unlock(); }
  27. private:
  28.     Mutex& _cs;
  29. };
  30.  
  31. #endif/*SYNOBJ_H*/

回复 "Mutex锁"

这儿你可以回复上面这条便签

captcha