windows 线程同步(线程同步windows平台)
windows 线程同步(线程同步windows平台)
2024-11-05 01:00:53  作者:大爱碎花  网址:https://m.xinb2b.cn/sport/gzo138137.html
一:介绍

临界区指的是一个访问共用资源(例:全局变量)的程序片段,该共用资源无法同时被多个线程访问的特性。有多个线程试图同时访问临界区,那么在有一个线程进入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操作共享资源的目的。

临界区在使用时以CRITICAL_SECTION结构对象保护共享资源,并分别用EnterCriticalSection()和LeaveCriticalSection()函数去标识和释放一个临界区。所用到的CRITICAL_SECTION结构对象必须经过InitializeCriticalSection()的初始化后才能使用,而且必须确保所有线程中的任何试图访问此共享资源的代码都处在此临界区的保护之下。否则临界区将不会起到应有的作用,共享资源依然有被破坏的可能。

二:步骤创建临界区对象:CRITICAL_SECTION critical初始化临界区:InitializeCriticalSection(&critical)进入临界区:EnterCriticalSection(&critical)释放临界区:LeaveCriticalSection(&critical)三:代码实现

1 9 #include <iostream>10 #include <Windows.h>11 using namespace std;12 13 volatile int number = 1;14 CRITICAL_SECTION critical; //临界区句柄15 16 DWORD CALLBACK ThreadFun1(LPVOID pParam)17 {18 while (1)19 {20 EnterCriticalSection(&critical);21 cout << "Thread1:" << number << endl;22 if (number >= 1000)23 {24 break;25 }26 LeaveCriticalSection(&critical);27 }28 29 return 0;30 }31 32 DWORD CALLBACK ThreadFun2(LPVOID pParam)33 {34 while (1)35 {36 EnterCriticalSection(&critical);37 cout << "Thread2:" << number << endl;38 LeaveCriticalSection(&critical);39 if (number >= 1000)40 {41 break;42 }43 }44 return 0;45 }46 47 48 int main()49 {50 InitializeCriticalSection(&critical);51 CreateThread(NULL, 0, ThreadFun1, NULL, 0, NULL);52 CreateThread(NULL, 0, ThreadFun2, NULL, 0, NULL);53 54 getchar();55 return 1;56 }


  • 世界杯直播从哪看的(全网都在问世界杯直播去哪看)
  • 2024-11-05全网都在问世界杯直播去哪看世界杯从昨晚开始,正式拉开帷幕甭管你是资深老球迷,还是完全看不懂足球的小白,这份热闹肯定是要凑的加上本届世界杯举办地在离我们不那么远的中东卡塔尔,那就意味着不少场次不用等到后半夜就能看但问题又来了,去。
  • 三角梅枝干枯了是不是死了(三角梅枝干枯是什么情况)
  • 2024-11-05三角梅枝干枯是什么情况三角梅的枝干枯了,一般不是死了,只要是根部还是正常生长的,那经过挽救它还能继续存活如果说三角梅的根部、主干以及枝条都枯了,那基本就是死亡了出现干枯的情况,一般都是长期缺水、养护期间温度过低或者是施肥太。
  • 天空和大海为什么都是蓝色的(海洋是蓝色的真正原因)
  • 2024-11-05海洋是蓝色的真正原因海洋是蓝色的,是因为它反映了天空的颜色?大多数人认为海洋是蓝色的,因为它反射了天空,然而这是一种误解,虽然这确实改变了海洋的颜色,但这并不是它看起来蓝色的主要原因海洋是蓝色的,是因为水吸收光谱中红色部。
  • 关于孤芳自赏(喜欢这四个字孤芳自赏)
  • 2024-11-05喜欢这四个字孤芳自赏最早的QQ号网名叫人在江湖,在虚拟的网络世界里,感受到现实生活中的调侃,每天朝九晚五的三点一线,活在当下梦见江湖,纵情四海确又身不由己从懵懂无知的少年走出新洲江心开始,三年高中住在教室的课桌上的青春,。
  • 华为mate30pro拍风景参数(手机电影泳往春天上线)
  • 2024-11-05手机电影泳往春天上线12月10日,@华为终端官方微博发布一条短篇电影《泳往春天》,引起了不少观众的热议这部手机电影由《冈仁波齐》导演张扬监制,青年导演孙媛媛执导,内容主要讲述了处于青春期的晓奇被妈妈劝退泳队,但她准备挑战。
  • dvd光驱不读盘怎么解决(教你如何正确处理)
  • 2024-11-05教你如何正确处理第一步在win7系统桌面上,鼠标右键计算机,选择管理,进去之后,点击设备管理器第二步进去设备管理器之后,找到DVD/CD-ROM驱动器下方的驱动,鼠标右键选择属性第三步进去光驱驱动属性界面之后,点击D。
  • 关于描写雪的唯美句子(关于描写雪的唯美句子有哪些)
  • 2024-11-05关于描写雪的唯美句子有哪些只见天地之间白茫茫的一片,雪花纷纷扬扬的从天上飘落下来,四周像拉起了白色的帐篷,大地立刻变得银装素裹我不禁想起一句诗忽如一夜春风来,千树万树梨花开真美呀!那雪花洁白如玉,它是天宫派下的小天将,还是月宫。
  • 环境信息披露管理办法(生态环境部印发管理办法)
  • 2024-11-05生态环境部印发管理办法中国网财经12月22日讯据生态环境部网站消息,为深入推进环境信息依法披露制度改革,日前,生态环境部印发实施《企业环境信息依法披露管理办法》(以下简称《管理办法》)制定《管理办法》是深化环境信息依法披露。
  • 陈芊芊韩烁大结局完整版(陈芊芊超前点播大结局)
  • 2024-11-05陈芊芊超前点播大结局由赵露思、丁禹兮主演的《传闻中的陈芊芊》终于迎来了点播大结局,对于非常喜欢这部剧的观众来看,一口气能看到结局还是比较爽的,但关于剧的结局却引起了不少的争议《传闻中的陈芊芊》原本是编剧陈小千写的一部古装。
  • 手指头黏住了502胶水怎么办(每天学习一点点)
  • 2024-11-05每天学习一点点502胶水如果不小心粘到了手指,我们该怎么处理?方法一,可以用到家里的风油精我们只需要将这个风油精滴在手指粘连的地方,滴几滴然后我们手指再轻轻地揉搓,揉搓几下你就会发现,手指就打开了,这个方法一点都不。
  • 白醋直接泡手可以吗(白醋泡手可以天天泡吗)
  • 2024-11-05白醋泡手可以天天泡吗1、最好不要天天用白醋泡手,因为白醋对手有一定的刺激性,若是非常想天天使用它的话也可以试着用水把白醋稀释得淡一点白醋还可以用来泡脚,有一种说法是这样可以很好的预防脚气、去除脚臭2、白醋对我们手部的皮肤。