互斥体 实现进程间的通信

 
HANDLE CreateMutex(
  LPSECURITY_ATTRIBUTES lpMutexAttributes,  // SD
  BOOL bInitialOwner,                       true  当前创建线程拥有该互斥体  false 当前创建线程不拥有
  LPCTSTR lpName                            // 对象的名字
);
typedef struct _SECURITY_ATTRIBUTES { 
  DWORD  nLength;				结构体的长度 
  LPVOID lpSecurityDescriptor;		安全描述 
  BOOL   bInheritHandle;			窗口能否被继承 
} SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES; 
 
HANDLE OpenMutex(
  DWORD dwDesiredAccess,  // access	MUTEX_ALL_ACCESS 所有权限
  BOOL bInheritHandle,    // inheritance option	是否可以继承
  LPCTSTR lpName          // object name		CreateMutex  创建互斥体的名字
);
 
DWORD WaitForSingleObject(
  HANDLE hHandle,        // handle to object		create open 打开的句柄
  DWORD dwMilliseconds   // time-out interval		等待时间 毫秒计数    INFINITE 等待到永远
);
   
   
WAIT_ABANDONED等待的对象是一个互斥对象,并且没有被它所在的线程释放。估计你有一个互斥对象,在线程退出时,没有释放。 互斥体现在没标识。
WAIT_OBJECT_0获得了互斥体
WAIT_TIMEOUT等待超时
 
BOOL ReleaseMutex(
  HANDLE hMutex   // handle to mutex
);
 
CloseHandle(hMutex);			create  open  打开的句柄  不用的时间要关了
 
CreateMutex(NULL,false,"topdesk");   //创建互斥体
 HANDLE h=OpenMutex(MUTEX_ALL_ACCESS,false,"topdesk"); //
 if(WAIT_OBJECT_0==WaitForSingleObject(h,INFINITE))
 {
  while(1)
  {
  }
 }
 ReleaseMutex(h);
 
 
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值