当前位置: 首页 > news >正文

我的世界做图的网站/百度公司的业务范围

我的世界做图的网站,百度公司的业务范围,个人网页设计说明模板,如何下载ppt模板免费多线程(5)多线程同步之临界区(windows实现)1. 什么是临界资源,临界区?2.临界区的特点2. 接口(windows实现)3. 例子-windows参考1. 什么是临界资源,临界区? 临…

多线程(5)多线程同步之临界区(windows实现)

  • 1. 什么是临界资源,临界区?
  • 2.临界区的特点
  • 2. 接口(windows实现)
  • 3. 例子-windows
  • 参考

1. 什么是临界资源,临界区?

  1. 临界资源
    多线程之间可能需要互斥的访问一些全局变量,这就需要互斥的来访问,这些需要共享访问的字段被称作是 临界资源

  2. 临界区
    就是访问临界资源的那一段代码称作临界区

2.临界区的特点

  1. 临界区在任意时刻只允许一个线程对共享资源进行访问。
  2. 如果有多个线程试图同时访问临界区,那么有线程进入后,其他线程试图访问时将被挂起,直到进入临界区的线程离开。

2. 接口(windows实现)

1. CRITICAL_SECTION &sec;	       //申请一个临界区资源对象 
2. InitializeCriticalSection(&sec);//初始化临界区对象
3. EnterCriticalSection(&sec);     //进入临界区
4. LeaveCriticalSection(&sec);     //离开临界区
5. DeleteCriticalSection(&sec);    //释放临界区

3. 例子-windows

#include "iostream"
#include "windows.h"
using namespace std;CRITICAL_SECTION criSec;
static HANDLE g_mutex = INVALID_HANDLE_VALUE;
static int g_iShareNum=10;DWORD WINAPI threadCriticalSecTestOne(LPVOID lp)
{cout<<"----thread 1 start----"<<endl;while (1){EnterCriticalSection(&criSec);if (g_iShareNum>0){cout<<"thread 1 sell "<<g_iShareNum<<endl;g_iShareNum--;//Sleep(100);}else{LeaveCriticalSection(&criSec);return 0;}LeaveCriticalSection(&criSec);Sleep(100);}return 0;
}DWORD WINAPI threadCriticalSecTestTwo(LPVOID lp)
{cout<<"----thread 2 start----"<<endl;while (1){EnterCriticalSection(&criSec);if (g_iShareNum>0){cout<<"thread 2 sell "<<g_iShareNum<<endl;g_iShareNum--;//Sleep(100);}else{LeaveCriticalSection(&criSec);return 0;}LeaveCriticalSection(&criSec);Sleep(100);}return 0;
}void testCriticalSec(){cout<<"----testCriticalSec test start----"<<endl;InitializeCriticalSection(&criSec);HANDLE hOne,hWwo;hOne=CreateThread(NULL,0,threadCriticalSecTestOne,0,0,0);hWwo=CreateThread(NULL,0,threadCriticalSecTestTwo,0,0,0);CloseHandle(hOne);CloseHandle(hWwo);while (1){if (g_iShareNum==0){cout<<"g_iShareNum =0"<<endl;DeleteCriticalSection(&criSec);return;}else{continue;}}cout<<"----testCriticalSec test end----"<<endl;return;
}

参考

1. https://blog.csdn.net/qq_41248872/article/details/82991949

http://www.lbrq.cn/news/755839.html

相关文章:

  • 邢台网站建设服务商/seo点击软件
  • 东莞企业高端网站建设/百度新闻下载安装
  • 做阿里巴巴类似的网站/2022最新小学生新闻
  • 龙岩网站制作教程/湖南seo推广多少钱
  • 苏州网站建设公司找哪家/优化营商环境评价
  • 百度推广网站怎么做/汽车营销活动策划方案
  • 南京网站设计价格/现在推广什么app最挣钱
  • 广东华业建设有限公司网站/怎样把个人介绍放到百度
  • 网站建设电话销售话术模板大全/口碑营销方案
  • 河南专业网站建设公司/网站推广哪个平台最好
  • 重庆建站模板厂家/营销推广seo
  • 电商网站怎么做支付/企业线上培训平台
  • 58同城怎么做网站/seo任务
  • 网站不备案可以做淘宝客吗/百度排行
  • 首页制作教程/台州seo
  • 东莞做网站建设/营销策略都有哪些
  • 域名空间网站/网站访问量查询工具
  • 做网站v赚钱/巨量算数
  • dedecms怎么制作网站/湘潭seo优化
  • 在线写作网站/推广引流软件
  • 做导航网站有发展吗/搜索引擎优化需要多少钱
  • 一手房哪个网站做信息效果好/本站3天更换一次域名yw
  • 张家界网站制作与代运营/线上营销怎么做
  • asp.net jsp 网站开发/seo外链发布平台
  • 网站怎么设计好看/图片识别 在线识图
  • 设计新闻发布网站模板/东莞网络推广
  • 宁波城乡住房建设局网站/百度助手app免费下载
  • 怎样做网站的二维码/推广app大全
  • 老板说做个网站我要怎么做/深圳推广公司哪家最好
  • 石家庄怎样做网站/网络安全培训最强的机构
  • cPanel Python 应用部署流程
  • 【科研绘图系列】R语言在DOM再矿化数据分析与可视化中的应用
  • AI加持下的智能路由监控:Amazon VPC Direct Connect实战指南
  • 关系型数据库从入门到精通:MySQL 核心知识全解析
  • [激光原理与应用-283]:理论 - 波动光学 - 电磁波概述
  • pytorch学习笔记-Loss的使用、在神经网络中加入Loss、优化器(optimizer)的使用