windows 线程同步(线程同步windows平台)
windows 线程同步(线程同步windows平台)
2024-11-22 12:54:40  作者:大爱碎花  网址: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-22请收下这份录取通知书辨别指南高校录取通知书是考生录取和新生报到入学的重要凭证,关系到考生切身权益每年这个时候,一些“李鬼”大学招摇过市,用“入学通知书”“学习通知书”等来欺骗考生和家长因此,考生和家长要提高警惕,增强防范意识掌握。
  • 回首已是30载(今天回首又见)
  • 2024-11-22今天回首又见北京时间2021年10月16日0时23分,搭载神舟十三号载人飞船的长征二号F遥十三运载火箭,在酒泉卫星发射中心按照预定时间精准点火发射,顺利将翟志刚、王亚平、叶光富3名航天员送入太空新华社记者刘磊摄还。
  • 网络推广有哪些方式可以做(企业想做好网络推广)
  • 2024-11-22企业想做好网络推广网络推广是指个人或组织以互联网为渠道展开的营销行为从不同维度,可以将网络推广分为不同的类型从是否付费来看,网络推广可以分为付费方式和免费方式付费推广主要有各种付费广告、搜索引擎竞价排名(sem)、各类。
  • 四川达州万源市发展怎么样(四川东北部第一小的城市)
  • 2024-11-22四川东北部第一小的城市最近发现“四川统计”发布了一则关于四川城市体系的信息,说四川城市体系呈金字塔型按照他的思维,地级市城区,以及县级市城区才能算作是严格意义上的城市,而县城和城镇规模较大的镇,都不算城市四川省内一共有36。
  • 文玩核桃上油最好的方法(文玩核桃要不要上油)
  • 2024-11-22文玩核桃要不要上油说核桃需要注意的几个问题,最最普遍出现的就是断尖和开裂了今天小编想和大家伙说说开裂的问题在谈论问题之前,想和各位玩友先说一下:其实是不赞成上油的,在金刚和核桃开裂的问题上一般是不会推荐上油这种方法这是。
  • 代人赋鹧鸪天(只羡鸳鸯不羡仙)
  • 2024-11-22只羡鸳鸯不羡仙只羡鸳鸯不羡仙,为君惯赋鹧鸪天作者:岐超摄影:听风出镜:欢欢编辑:墨梅鹧鸪天事到而今已淡然,缘来缘去且随缘不提往事犹还易,忘记佳人却好难思昨日,叹从前,为何爱不早些言谈情太晚成遗憾,惟有相思一万年鹧鸪。
  • 王者荣耀当前版本杨戬的属性(S8赛季强势战士杨戬曹操)
  • 2024-11-22S8赛季强势战士杨戬曹操小编曾经在S8赛季的时候,写过多篇文章介绍几位战士英雄——杨戬、曹操、达摩,这三位战士都是既能够打野又可以上单的英雄在S8赛季的时候,虽然很多战士类英雄都有削弱,但是这几位战士依然还能够活跃在战场上但。
  • 秋天家里养什么花好(秋天家里养哪种花好)
  • 2024-11-22秋天家里养哪种花好常青藤:这个虽然不开花,但是四季常青,常青藤对环境的适应性很强,喜欢比较冷凉的气候,耐寒力较强;关键是其净化空气超级好,尤其是装修后的的室内“负离子”净化器,据信对降低甲醛、苯等有害物质的浓度有明显效。
  • 人生需要不断提升自己(人生观念世纪大突破)
  • 2024-11-22人生观念世纪大突破王建平:每日一文:《感知论.第九部》(36)我们怎么才能理解自己?我们对自己的理解太局限于自己的身体,这是因为肉体的反应最直接的缘故在生物中,越是低等的生物感知范围和感知活动越小,越是高等的生物感知活。