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

C++使用CriticalSection實(shí)現(xiàn)線程同步實(shí)例

 更新時(shí)間:2014年10月10日 10:14:03   投稿:shichen2014  
這篇文章主要介紹了C++使用CriticalSection實(shí)現(xiàn)線程同步實(shí)例,是使用CriticalSection對前文實(shí)例的擴(kuò)展,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了C++使用CriticalSection實(shí)現(xiàn)線程同步的方法,在前文C++線程同步實(shí)例分析的基礎(chǔ)上增加了四行代碼,使用了四個(gè)函數(shù):
EnterCriticalSection ::DeleteCriticalSection ::EnterCriticalSection ::LeaveCriticalSection此時(shí),打印出來的數(shù)字就相等了。

具體代碼如下:

#include "stdafx.h" 
#include <Windows.h> 
 
DWORD g_cnt1; 
DWORD g_cnt2; 
BOOL g_bContinue = TRUE; 
CRITICAL_SECTION cs; 
 
DWORD WINAPI ThreadProc(__in LPVOID lpParameter) 
{ 
  ::EnterCriticalSection(&cs); 
  while(g_bContinue) 
  { 
    g_cnt1++; 
    g_cnt2++; 
  } 
  ::LeaveCriticalSection(&cs); 
  return 0; 
} 
 
int _tmain(int argc, _TCHAR* argv[]) 
{ 
  HANDLE hThread[2]; 
  g_cnt1 = g_cnt2 = 0; 
  ::InitializeCriticalSection(&cs); 
 
  hThread[0] = ::CreateThread(NULL, 0, ThreadProc, NULL, 0, NULL); 
  hThread[1] = ::CreateThread(NULL, 0, ThreadProc, NULL, 0, NULL); 
 
  Sleep(1000); 
  g_bContinue = FALSE; 
  ::WaitForMultipleObjects(2, hThread, TRUE, INFINITE); 
  printf("g_cnt1=%d\n",g_cnt1); 
  printf("g_cnt2=%d\n",g_cnt2); 
 
  ::DeleteCriticalSection(&cs); 
 
  ::CloseHandle(hThread[0]); 
  ::CloseHandle(hThread[1]); 
  return 0; 
}

希望本文所述對大家的C++程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • C語言中結(jié)構(gòu)體(struct)的幾種初始化方法

    C語言中結(jié)構(gòu)體(struct)的幾種初始化方法

    相信大家都知道struct結(jié)構(gòu)體是C語言中非常重要的復(fù)合類型,初始化的方法很多,那么小編下面對這些方法進(jìn)行總結(jié),便于自己和大家以后查閱,有需要的可以參考借鑒。
    2016-08-08
  • C語言程序設(shè)計(jì)之指針的應(yīng)用詳解

    C語言程序設(shè)計(jì)之指針的應(yīng)用詳解

    為了讓大家能夠更準(zhǔn)確的了解C語言中指針的使用,本文為大家準(zhǔn)備了四個(gè)指針相關(guān)的例題,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下
    2022-11-11
  • C++ 模擬實(shí)現(xiàn)list(迭代器)實(shí)現(xiàn)代碼

    C++ 模擬實(shí)現(xiàn)list(迭代器)實(shí)現(xiàn)代碼

    這篇文章主要介紹了C++ 模擬實(shí)現(xiàn)list(迭代器)實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Qt實(shí)現(xiàn)UDP通信的示例代碼

    Qt實(shí)現(xiàn)UDP通信的示例代碼

    UDP是一個(gè)輕量級(jí)、不可靠、面向數(shù)據(jù)報(bào)的、無連接的傳輸層協(xié)議,多用于可靠性要求不嚴(yán)格,不是非常重要的傳輸,如直播、視頻會(huì)議等等。本文將通過Qt實(shí)現(xiàn)UDP通信,感興趣的可以了解一下
    2022-11-11
  • OpenGL繪制貝塞爾曲線

    OpenGL繪制貝塞爾曲線

    這篇文章主要為大家詳細(xì)介紹了OpenGL繪制貝塞爾曲線,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C++標(biāo)準(zhǔn)模板庫STL深入講解

    C++標(biāo)準(zhǔn)模板庫STL深入講解

    STL提供了一組表示容器、迭代器、函數(shù)對象和算法的模板。容器是一個(gè)與數(shù)組類似的單元,可以存儲(chǔ)若干個(gè)值。STL容器是同質(zhì)的,即存儲(chǔ)的值的類型相同:算法是完成特定任務(wù)(如對數(shù)組進(jìn)行排序或在鏈表中查找特定值)的處方
    2022-12-12
  • C語言實(shí)現(xiàn)模擬銀行系統(tǒng)

    C語言實(shí)現(xiàn)模擬銀行系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)模擬銀行系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C語言結(jié)構(gòu)體字節(jié)對齊的實(shí)現(xiàn)深入分析

    C語言結(jié)構(gòu)體字節(jié)對齊的實(shí)現(xiàn)深入分析

    這篇文章主要介紹了C語言結(jié)構(gòu)體字節(jié)對齊的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-10-10
  • windows下用c++獲取本機(jī)ip地址的三種方法

    windows下用c++獲取本機(jī)ip地址的三種方法

    工作過程中遇到一個(gè)需求,需要獲取本機(jī)ip地址,同時(shí)獲取本機(jī)網(wǎng)絡(luò)連接情況,即網(wǎng)線是否連接,經(jīng)過多番搜索,本文給大家介紹了3種方案,通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • C語言實(shí)現(xiàn)貪吃蛇游戲代碼

    C語言實(shí)現(xiàn)貪吃蛇游戲代碼

    大家好,本篇文章主要講的是C語言實(shí)現(xiàn)貪吃蛇游戲代碼,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02

最新評(píng)論