[Win32]互斥体

一、互斥体

内核级临界资源(跨进程),互斥体可以看成能够放进内核(0环)中的一种令牌。

HANDLE CreateMutex(
  LPSECURITY_ATTRIBUTES lpMutexAttributes,  // SD //安全描述符
  BOOL bInitialOwner,                       // initial owner //创建出的互斥体有信号填写False
  LPCTSTR lpName                            // object name  //内核互斥体名字随意起
);

两个程序同时执行,只有当第一个程序执行完毕后才会执行,也就是说第一个进程没有释放令牌的时候另外一个进程是处于堵塞的状态

int main(int argc, char* argv[])
		
{
	//创建互斥体
	HANDLE g_hMutex = CreateMutex(NULL,FALSE,"XYZ"); //如果写true意味着当前的互斥体是属于当前这个进程的。
	//获取令牌:有信号,线程的拥有者
	WaitForSingleObject(g_hMutex,INFINITE);

	for(int i=0;i<10;i++)
	{
	
		Sleep(1000);
		printf("A进程的x线程:%d \n",i);
	}
	//释放令牌
	ReleaseMutex(g_hMutex);
	return 0;
}

 

猜你喜欢

转载自www.cnblogs.com/websecyw/p/12983910.html