国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++線程同步實例分析

2020-05-23 14:20:30
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了C++線程同步實例分析,以實例的形式較為深入的分析了C++的線程同步問題,是一個較為經典的線程同步問題,需要的朋友可以參考下
 
 

本文實例分析了C++線程同步問題,分享給大家供大家參考。具體分析如下:

該實例設置全局變量g_bContinue,在主線程中設置全局變量g_bContinue,工作線程檢測該全局變量,實現主線程控制工作線程的目的。

打印出的g_cnt1與g_cnt2的數值不同,是因為線程調試時時間片的切換。

具體代碼如下:

 

  1. // countError.cpp : 定義控制臺應用程序的入口點。  
  2. //  
  3. #include "stdafx.h"  
  4. #include <Windows.h>  
  5.    
  6. DWORD g_cnt1;  
  7. DWORD g_cnt2;  
  8. BOOL g_bContinue = TRUE;  
  9. DWORD WINAPI ThreadProc(__in LPVOID lpParameter)  
  10. {  
  11.   while(g_bContinue)  
  12.   {  
  13.     g_cnt1++;  
  14.     g_cnt2++;  
  15.   }  
  16.   return 0;  
  17. }  
  18.    
  19. int _tmain(int argc, _TCHAR* argv[])  
  20. {  
  21.   HANDLE hThread[2];  
  22.   g_cnt1 = g_cnt2 = 0;  
  23.    
  24.   hThread[0] = ::CreateThread(NULL, 0, ThreadProc, NULL, 0, NULL);  
  25.   hThread[1] = ::CreateThread(NULL, 0, ThreadProc, NULL, 0, NULL);  
  26.    
  27.   Sleep(1000);  
  28.   g_bContinue = FALSE;  
  29.   ::WaitForMultipleObjects(2, hThread, TRUE, INFINITE);  
  30.   printf("g_cnt1=%d/n",g_cnt1);  
  31.   printf("g_cnt2=%d/n",g_cnt2);  
  32.   ::CloseHandle(hThread[0]);  
  33.   ::CloseHandle(hThread[1]);  
  34.   return 0;  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新蔡县| 库伦旗| 嘉黎县| 土默特左旗| 西畴县| 嘉义市| 政和县| 汉中市| 南华县| 长沙市| 汉中市| 苗栗市| 云龙县| 确山县| 鄂尔多斯市| 马边| 天台县| 高唐县| 嘉禾县| 南安市| 涟水县| 石柱| 深圳市| 都江堰市| 应城市| 大庆市| 商洛市| 蒲城县| 鄂伦春自治旗| 石嘴山市| 滦平县| 邮箱| 肥东县| 永康市| 瑞丽市| 紫金县| 塔河县| 板桥市| 南康市| 响水县| 宁陵县|