Visual C++網路程式設計經典案例詳解 第3章 多執行緒與非同步套接字程式設計 實現執行緒同步 互斥物件 程式的唯一執行
阿新 • • 發佈:2018-12-10
互斥物件可在程序中使用 使用者在程序建立互斥物件實現程式例項唯一執行
建立控制檯工程
#include<windows.h> //包含標頭檔案 #include<stdio.h> int main() //主函式 { HANDLE hmutex; //定義互斥物件控制代碼 hmutex=::CreateMutex(NULL,true,"VC網路程式設計"); //建立互斥物件並返回其控制代碼 if(hmutex) //判斷建立互斥物件是否成功 { if(ERROR_ALREADY_EXISTS==GetLastError()) //獲取錯誤 { printf("只允許一個例項程式執行!\r\n"); //列印相關資訊 } else { printf("例項程式執行成功!\r\n"); } } ::ReleaseMutex(hmutex); //釋放互斥物件控制代碼 ::Sleep(100000); //使程式睡眠100秒 return 0; //程式正常結束 }
輸出 執行兩個視窗 視窗1 例項程式執行成功! 視窗2 只允許一個例項程式執行!
使用者建立互斥物件 使用函式GetLastError()獲取錯誤資訊 獲取到錯誤為ERROR_ALREADY_EXISTS 說明程式有一個例項執行