critic

C++多线程同步之临界区(CriticalSection)、WINDOWS和LINUX

匿名 (未验证) 提交于 2019-12-02 21:53:52
一、Win32平台 1、相关头文件和接口 #include <windows.h> CRITICAL_SECTION cs ; //定义临界区对象 InitializeCriticalSection (& cs ); //初始化临界区 EnterCriticalSection (& cs ); //进入临界区 LeaveCriticalSection (& cs ); //离开临界区 DeleteCriticalSection (& cs ); //删除临界区 //线程同步类。是对Win32临界区对象的封装。 class CMyCriticalSection { public : //CCriticalSection类的构造函数,初始化临界区,析构函数删除临界区。 CMyCriticalSection () { :: InitializeCriticalSection (& m_crit ); } ~ CMyCriticalSection () { :: DeleteCriticalSection (& m_crit ); } //进人临界区 void Enter () { :: EnterCriticalSection (& m_crit ); } //离开临界区 void Leave () { :: LeaveCriticalSection (& m_crit ); }