概述
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 ;
}
}
最后
以上就是孝顺砖头为你收集整理的互斥对象的全部内容,希望文章能够帮你解决互斥对象所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复