CreateMutex( LPSECURITY_ATTRIBUTES 【lpMutexAttributes】, //指向安全属性的指针 BOOL 【bInitialOwner】, //标志初始所有权 LPCTSTR 【lpName】 //指向mutex对象名称的指针 );
// Mutex0616.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <WINDOWS.H> int main(int argc, char* argv[]) { //创建互斥体 HANDLE hMutex = CreateMutex(NULL,FALSE,"xyz"); //获取令牌 WaitForSingleObject(hMutex,INFINITE); for (int i =0;i<10;i++) { Sleep(1000); printf("A进程的X线程:%d\n",i); } ReleaseMutex(hMutex); return 0; }
// Mutex0616.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <WINDOWS.H> int main(int argc, char* argv[]) { //创建互斥体 HANDLE hMutex = CreateMutex(NULL,FALSE,"xyz"); //获取令牌 WaitForSingleObject(hMutex,INFINITE); for (int i =0;i<10;i++) { Sleep(1000); printf("B进程的Y线程:%d\n",i); } ReleaseMutex(hMutex); return 0; }
// Mutex0616.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <WINDOWS.H> int main(int argc, char* argv[]) { //创建互斥体 HANDLE hMutex = CreateMutex(NULL,FALSE,"xyz"); DWORD dret = GetLastError(); if(hMutex) { if (ERROR_ALREADY_EXISTS == dret) { CloseHandle(hMutex); return 0; } } else { printf("创建失败!程序退出!"); CloseHandle(hMutex); return 0; } //获取令牌 //WaitForSingleObject(hMutex,INFINITE); for (;;) { Sleep(1000); printf("A进程的X线程\n"); } //ReleaseMutex(hMutex); return 0; }
.