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 ;
}
}
最后
以上就是孝顺砖头最近收集整理的关于互斥对象的全部内容,更多相关互斥对象内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复