1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          windows線程 互斥鎖CreateMutex、ReleaseMutex、CloseHandle

          來源:互聯網轉載 時間:2023-08-08 11:37:28

          互斥
          相關問題
          多線程下代碼或資源的共享使用。
          互斥的使用
          1.創建互斥
          HANDLE CreateMutex(
          LPSECURITY_ATTRIBUTES lpMutexAttributes,//安全屬性(廢棄參數,置NULL)
          BOOL bInitialOwner,//初始的擁有者TRUE/FALSE
          LPCTSTR lpName //命名
          );//創建成功返回互斥句柄
          可等候的句柄,具備有信號和無信號的特點
          bInitialOwner
          TRUE-那個線程創建就那個線程具有互斥
          FALSE-任何線程都不擁有它
          特性:
          a.獨占性-在某個時間點上,只有一個線程擁有互斥,別的線程等待,除非這個線程扔掉后,別的線程才會擁有互斥
          b.所有線程都沒有互斥時,線程句柄有信號,如果有一個線程擁有互斥,線程句柄無信號
          2.等候互斥
          WaitFor… 互斥的等候遵循誰先等候誰先獲取。
          誰先等候,誰先獲得互斥
          3.釋放互斥
          BOOL Releasemutex(
          HANDLE hMutex //互斥句柄
          );
          4.關閉互斥句柄
          CloseHandle

          錯誤示例代碼(混亂)

          #include <Windows.h> #include <stdio.h>DWORD CALLBACK myThreadProc1(LPVOID lpParam) {char* szText = (char*)lpParam;while(1){//printf("%s\n",szText);for(int i = 0; i < strlen(szText);i++){printf("%c",szText[i]);Sleep(150);}printf("\n");} } DWORD CALLBACK myThreadProc2(LPVOID lpParam) {char* szText = (char*)lpParam;while(1){//printf("%s\n",szText);for(int i = 0; i < strlen(szText);i++){printf("%c",szText[i]);Sleep(150);}printf("\n");} } int main() {char* szText1 = "***Thread1***";char* szText2 = "---Thread2---";DWORD myThreadId1 = 0;DWORD myThreadId2 = 0;HANDLE hThread1 = CreateThread(NULL,0,myThreadProc1,szText1,0,&myThreadId1);HANDLE hThread2 = CreateThread(NULL,0,myThreadProc2,szText2,0,&myThreadId2);system("pause");return 0; } //正確的代碼,加互斥鎖 #include <Windows.h> #include <stdio.h> HANDLE g_hHandle; DWORD CALLBACK myThreadProc1(LPVOID lpParam) {char* szText = (char*)lpParam;while(1){WaitForSingleObject(g_hHandle,INFINITE);//printf("%s\n",szText);for(int i = 0; i < strlen(szText);i++){printf("%c",szText[i]);Sleep(150);}printf("\n");ReleaseMutex(g_hHandle);} } DWORD CALLBACK myThreadProc2(LPVOID lpParam) {char* szText = (char*)lpParam;while(1){WaitForSingleObject(g_hHandle,INFINITE);//printf("%s\n",szText);for(int i = 0; i < strlen(szText);i++){printf("%c",szText[i]);Sleep(150);}printf("\n");ReleaseMutex(g_hHandle);} } int main() {g_hHandle =CreateMutex(NULL,FALSE,NULL);char* szText1 = "***Thread1***";char* szText2 = "---Thread2---";DWORD myThreadId1 = 0;DWORD myThreadId2 = 0;HANDLE hThread1 = CreateThread(NULL,0,myThreadProc1,szText1,0,&myThreadId1);HANDLE hThread2 = CreateThread(NULL,0,myThreadProc2,szText2,0,&myThreadId2);system("pause");CloseHandle(g_hHandle);return 0; }


          原子鎖能解決的問題,互斥鎖也能解決;
          互斥鎖能解決的問題,原子鎖不能解決;
          原子鎖的效率要高很多,互斥鎖比較慢。

          標簽:sem-

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          鞍山大超市排名?第一名是大潤發超市。目前鞍山共有四家門店,分別是鐵西九道街民生店、鐵東區中華店、湖南小學湖南街店、立山店。店內環境干凈整潔,商品質量也有保證。第二家應該是嘉泰樂店。目前知道的有站前天河佳泰樂店,鐵西廣場附近的佳泰樂店,湖南省的佳泰樂店,都屬于鞍山本地人開的大店。再次,我覺得是個不錯的超市,也有一定的規模。目前已在鐵西永樂公園、九道街開設多家連鎖店。還有新隆嘉、聚果源、明利源等一些中...

          volume指標怎么看?你好。股票市場的成交量指數就是換手率指數。換手率是指個股或市場的總換手率,用縱列表示。左側的坐標值對應于列的水平位置,該列是當時事務的總經理。如果當日收盤價高于或等于前一日收盤價,則成交一欄為紅色;否則,成交一欄為綠色。Ma5、ma10等是指5天和10天的平均交易量。酒店房間廁所內的VOLUME怎么使用,有什么用?您想知道如何使用酒店客房衛生間的音量控制軟件嗎?建議您直接打...

          寫表單的時候有個value屬性,是表示什么呢?Value是表單控件傳遞給處理程序的值。例如,這是一個文本框。其值為“請在此處填寫用戶名”,即文本框。原文是“請在這里填寫用戶名”男女這是兩個單選按鈕。如果在表單提交后選擇“男”,則提交的值就是值,即表單提交后選擇“男”,反之亦然...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>