Mutex对象的状态在它不被任何线程拥有时才有信号,而当它被线程拥有时则无信号。
Mutex对象很适合用来协调多个线程对共享资源的互斥访问。
使用步骤:
1、建立互斥体对象,得到句柄:
HANDLE CreateMutex();
2、在线程可能产生冲突的区域前(即访问共享资源之前)调用WaitForSingleObject()将句柄传给函数,请求占用互斥对象:
dwWaitResult=WaitForSingleObject(hMutex,5000l);
3、共享资源访问结束,释放对互斥体对象的占有:
ReleaseMutex(hMutex);
互斥体对象在同一时刻只能被一个线程占用,当互斥体对象被一个线程占用时,若有另一个线程想占用它,则必须等到前一线程释放后才能成功。