线程同步

来源:互联网 发布:累计消费金额的算法 编辑:程序博客网 时间:2024/05/22 08:12
 

 1、临界区(同一进程的不同线程)

头文件CCriticalSection.h

#pragma onceclass CCriticalSection{public:CCriticalSection();CCriticalSection(CRITICAL_SECTION* pMutex);~CCriticalSection(void);private:CRITICAL_SECTION* m_pLock;};
源文件 CCriticalSection.cpp
<pre class="cpp" name="code"><p>#include "StdAfx.h"#include ".\guard.h"</p><p>CCriticalSection::CCriticalSection(): m_pLock(NULL){</p><p>}CCriticalSection::CCriticalSection(CRITICAL_SECTION* pMutex){ m_pLock = pMutex; EnterCriticalSection(m_pLock);}</p><p>CCriticalSection::~CCriticalSection(void){ LeaveCriticalSection(m_pLock(;</p><p>}</p><p> </p><p>使用:</p><p>构造函数中:</p><p>CRITICAL_SECTION m_sctLogInfo;</p><p>InitializeCriticalSection(&m_sctLogInfo);</p><p> </p><p>使用函数中:</p><p>CGuard guard(&m_sctLogInfo);</p><p>:::::::</p><p>:::::::</p><p> </p><p>析构函数中:</p><p>DeleteCriticalSection($m_sctLogInfo); DeleteCriticalSection(&m_sctLogInfo); DeleteCriticalSection(&m_sctLogInfo); DeleteCriticalSection(&m_sctLogInfo); DeleteCriticalSection(&m_sctLogInfo); DeleteCriticalSection(&m_sctLogInfo);</p><p> </p>
                                             
0 0
原创粉丝点击