标题:用面向对象方法实现多线程自动锁


class CLock

{

public:

     void Lock() {EnterCriticalSection(&m_sec);}

     void Unlock() {LeaveCriticalSection(&m_sec);}

     CLock () {InitializeCriticalSection(&m_sec);}

     ~ CLock () {DeleteCriticalSection(&m_sec);}   

private:

    CRITICAL_SECTION m_sec;

};

//把加锁和放锁放在构造函数和析构函数里,锁就会随着构造函数和析构函数的调用而加锁和放锁了。

class CAutoLock

{

public:

      CAutoLock(CLock  * lpLock) :

      m_pLock (lpLock)

      {

          m_pLock ->Lock();

      }

      ~CAutoLock()

      {

          m_pLock ->Unlock();

      }

private:

    CLock * m_pLock;

};

 //自动锁的使用:

{

    CLock m_lock;

    CAutoLock(&m_lock);

   

}



看文字不过瘾?点击我,进入周哥教IT视频教学
麦洛科菲长期致力于IT安全技术的推广与普及,我们更专业!我们的学员已经广泛就职于BAT360等各大IT互联网公司。详情请参考我们的 业界反馈 《周哥教IT.C语言深学活用》视频

我们的微信公众号,敬请关注