在多线程编程中线程的互斥与同步尤为重要。Windows操作系统提供了不同的线程互斥同步机制:临界区、互斥锁、事件和信号量。
以下为其中的互斥锁Mutex的封装类,为应用提供了简单的接口来操作互斥锁。
#include <windows.h>
class Mutex
{
private:
HANDLE mutex;
public:
Mutex()
{
mutex = CreateMutex(NULL, FALSE, NULL);
}
~Mutex()
{
CloseHandle(mutex);
}
void waitAndLock()
{
WaitForSingleObject(mutex, INFINITE);
}
void unlock()
{
ReleaseMutex(mutex);
}
};