A. 互斥对象
互斥对象属于内核对象,它能够确保线程拥有对单个资源的互斥访问权.互斥对象包含一个使用数量,一个线程ID和一个计数器.
可以把互斥对象比喻为一把钥匙,保护的代码比喻为一个房间.
CreateMutex 当第二个参数为TRUE时+1,FALSE 不+1.
WaitForSingleObject // =0有信号状态可理解为空闲的时候的状态 +1
包护代码
RealeaseMutex -1
注意:
1.谁拥有互斥对象,谁释放互斥对象.
特别注意CreateMutex.例子如下:
//CreateMutex(NULL,TRUE,NULL); +1 ReleaseMutex(hMutex); -1
2.线程结束时,互斥对象内部数据都清0.
CreateMutex使程序只运行一个实例
hMutex=CreateMutex(NULL,TRUE,”tickets”);
if(hMutex)
{
if( ERROR_ALREADY_EXISTS==GetLastError() )
{
cout<<”only instance can run!”<<endl;
return ;
}
}
541

被折叠的 条评论
为什么被折叠?



