window 互斥锁
来源:互联网 发布:js获取input的type 编辑:程序博客网 时间:2024/06/11 15:54
- #ifndef _LockMutex_H
#define _LockMutex_H
#include <windows.h>
//锁接口类
class ILock
{
public:
virtual ~ILock() {}
virtual void Lock() const = 0;
virtual void Unlock() const = 0;
};
class CLockMutex: public ILock
{
public:
CLockMutex(void);
~CLockMutex(void);
virtual void Lock() const;
virtual void Unlock() const;
private:
HANDLE m_mutex;
};
//锁
class CMyLock
{
public:
CMyLock(const ILock&);
~CMyLock();
private:
const ILock& m_lock;
};
#endif
- #include "stdafx.h"
#include "LockMutex.h"
//创建一个匿名互斥对象
CLockMutex::CLockMutex(void)
{
m_mutex = ::CreateMutex(NULL, FALSE, NULL);
}
//销毁互斥对象,释放资源
CLockMutex::~CLockMutex(void)
{
::CloseHandle(m_mutex);
}
//确保【拥有互斥对象的线程】对被保护资源的独自访问
void CLockMutex::Lock() const
{
DWORD d = WaitForSingleObject(m_mutex, INFINITE);
}
//释放当前线程拥有的互斥对象,以使其它线程可以拥有互斥对象,对被保护资源进行访问
void CLockMutex::Unlock() const
{
::ReleaseMutex(m_mutex);
}
//利用C++特性,进行自动加锁
CMyLock::CMyLock(const ILock& m) : m_lock(m)
{
m_lock.Lock();
}
//利用C++特性,进行自动解锁
CMyLock::~CMyLock()
{
m_lock.Unlock();
}
内核级别的锁,可以用于进程间同步
阅读全文
0 0
- window 互斥锁
- Window
- window
- window
- window
- window
- window
- window
- Window
- window
- Window
- ‘Window’
- Window
- Window多线程同步之(互斥锁)
- window window.top window.self
- window.showModalDialog;window.showModalessDialog
- window.opener ,window.parent
- window.showModalDialog() + window.returnValue
- 二叉树问题
- Effective C++ 1.0 -- 概述
- HDU-5459 Jesus Is Here(思维递推)
- shader总结一
- [BZOJ]2437: [Noi2011]兔兔与蛋蛋 二分图匹配+博弈
- window 互斥锁
- Python 编写新浪新闻网络爬虫(学习整理)
- 数据结构—线性表--Joseph问题
- Springboot整合Swagger学习笔记
- php adodb 从mysql数据库中输出中文显示到utf编码网页乱码问题
- swoole学习过程中踩到的坑
- Tomcat各种版本集合!
- MyBatis Generator(MBG)实现插件
- Efficient Video Segmentation using Parametric Graph Partitioning阅读笔记(1)