美文网首页
互斥量 Mutex

互斥量 Mutex

作者: 7bfedbe4863a | 来源:发表于2018-01-01 23:54 被阅读0次

    头文件

    <Windows.h>
    <process.h>

    应用

    HANDLE hMutex;
    
    hMutex = CreateMutexA(NULL,//安全属性
        FALSE,    //互斥量的初始状态
        NULL);   //命名
    
    WaitForSingleObject(hMutex);
    
    ReleaseMutex(hMutex);    //释放互斥量
    

    函数原型

    HANDLE CreateMutexA(
        PSECURITY_ATTRIBUTES psa,
        BOOL bInitialOwner,
        PCTSTR pszName);
    
    HANDLE CreateMutexEx(
        PSECURITY_ATTRIBUTES psa,
        PCTSTR pszName,
        DWORD dwFlags,   //系统保留,传0
        DWORD dwDesiredAccess);
    
    BOOL ReleaseMutex(HANDLE hMutex);
    

    -其中,bInitialOwner用于控制互斥量的初始状态。
    -bInitialOwner是TRUE,那么对象的线程ID将被设为调用线程的ID,递归计数将被设为1。此刻处于未触发状态。
    -bInitialOwner是FALSE,对象的线程ID和递归计数都为0,处于触发状态。

    成功等待了几次,Release也要调用相应的次数(使对象的递归计数变为0)才能触发对象。

    -Release的调用次数如果有错误,在编译链接中不会有错误,只是对结果产生影响。

    相关文章

      网友评论

          本文标题:互斥量 Mutex

          本文链接:https://www.haomeiwen.com/subject/lxwxnxtx.html