欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++ EnterCriticalSection簡單使用

 更新時間:2021年08月17日 15:33:58   作者:ytouch  
線程鎖在多線程中可以控制線程的執(zhí)行順序,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

EnterCriticalSection作用

用途主要是在多線程中,當(dāng)開啟多線程中,要控制函數(shù)的執(zhí)行順序時,就需要用到它了,就是假如多個線程同時訪問這個函數(shù)時,需要控制執(zhí)行的順序,可以使用它去控制順序。

定義一個全局的鎖 CRITICAL_SECTION的實例

和一個靜態(tài)全局變量

  • CRITICAL_SECTION cs;//可以理解為鎖定一個資源
  • static int n_AddValue = 0;//定義一個靜態(tài)的全部變量n_AddValue實戰(zhàn)

一、首先是它的使用步驟:

//1.創(chuàng)建全局互斥量
CRITICAL_SECTION g_cs;

//2.初始化互斥量
InitializeCriticalSection(&g_cs);//必須添加,否則會報錯

//3.進入
EnterCriticalSection(&g_cs);

//4.離開
LeaveCriticalSection(&g_cs);

二、示例代碼:

// DefDemo.cpp : 定義控制臺應(yīng)用程序的入口點。
//

#include "stdafx.h"
using namespace std;


CRITICAL_SECTION g_cs;

struct gParam
{
 int m;
 int n;
};

void WINAPI getMax(gParam * cur_Param)
{
 EnterCriticalSection(&g_cs);
 if (cur_Param->m > cur_Param->n)
 {
  cout << "MAX_VALUE:"<< cur_Param->m << endl;
 }
 else
 {
  cout << "MAX_VALUE:"<< cur_Param->n << endl;
 }
 LeaveCriticalSection(&g_cs);
 return;
}


int _tmain(int argc, _TCHAR* argv[])
{
 InitializeCriticalSection(&g_cs);
 gParam * cur_Param = new gParam;
 cur_Param->m = 2;
 cur_Param->n = 5;

 gParam * cur_NexParam = new gParam;
 cur_NexParam->m = 10;
 cur_NexParam->n = 2;
 CreateThread(nullptr,0,(LPTHREAD_START_ROUTINE)getMax,cur_Param,0,0);
 CreateThread(nullptr,0,(LPTHREAD_START_ROUTINE)getMax,cur_NexParam,0,0);
 system("pause");
 delete cur_Param;
 return 0;
}

運行結(jié)果:

到此這篇關(guān)于C++ EnterCriticalSection簡單使用的文章就介紹到這了,更多相關(guān)C++ EnterCriticalSection內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于C語言函數(shù)strstr()的分析以及實現(xiàn)

    關(guān)于C語言函數(shù)strstr()的分析以及實現(xiàn)

    以下是對C語言中strstr()函數(shù)的使用進行了詳細的分析介紹,需要的朋友可以參考下
    2013-07-07
  • 詳解C++函數(shù)類型與重載函數(shù)

    詳解C++函數(shù)類型與重載函數(shù)

    這篇文章主要為大家介紹了C++函數(shù)類型與重載函數(shù),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • 詳解C/C++實現(xiàn)各種字符轉(zhuǎn)換方法合集

    詳解C/C++實現(xiàn)各種字符轉(zhuǎn)換方法合集

    這篇文章主要為大家詳細介紹了C/C++中實現(xiàn)各種字符轉(zhuǎn)換的方法,文中的示例代碼講解詳細,對我們學(xué)習(xí)C++具有一定借鑒價值,需要的可以參考一下
    2022-09-09
  • c++ 判斷是64位還是32位系統(tǒng)的實例

    c++ 判斷是64位還是32位系統(tǒng)的實例

    這篇文章主要介紹了c++ 判斷是64位還是32位系統(tǒng)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • C++讀寫ini配置文件實現(xiàn)過程詳解

    C++讀寫ini配置文件實現(xiàn)過程詳解

    這篇文章主要介紹了C++讀寫ini配置文件實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • C/C++回調(diào)函數(shù)介紹

    C/C++回調(diào)函數(shù)介紹

    回調(diào)函數(shù)就是一個通過函數(shù)指針調(diào)用的函數(shù)。如果你把函數(shù)的指針(地址)作為參數(shù)傳遞給另一個函數(shù),當(dāng)這個指針被用為調(diào)用它所指向的函數(shù)時,我們就說這是回調(diào)函數(shù)
    2013-10-10
  • C/C++中多重繼承詳解及其作用介紹

    C/C++中多重繼承詳解及其作用介紹

    這篇文章主要介紹了C/C++中多重繼承詳解及其作用介紹,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • Visual Studio Code運行C++代碼時顯示CLOCKS_PER_SEC未定義的問題及解決方法

    Visual Studio Code運行C++代碼時顯示CLOCKS_PER_SEC未定義的問題及解決方法

    這篇文章主要介紹了解決Visual Studio Code運行C++代碼時顯示CLOCKS_PER_SEC未定義的問題,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • C語言結(jié)構(gòu)體的一些理解

    C語言結(jié)構(gòu)體的一些理解

    這篇文章主要給大家介紹了關(guān)于C語言結(jié)構(gòu)體的一些理解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • C++控制臺實現(xiàn)隨機生成路徑迷宮游戲

    C++控制臺實現(xiàn)隨機生成路徑迷宮游戲

    這篇文章主要為大家詳細介紹了C++控制臺實現(xiàn)隨機生成路徑迷宮游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05

最新評論