我是靠谱客的博主 孝顺砖头,最近开发中收集的这篇文章主要介绍互斥对象,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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 ;

}

}

最后

以上就是孝顺砖头为你收集整理的互斥对象的全部内容,希望文章能够帮你解决互斥对象所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部