C++中的Lock简单用法
简单记录一下C++中的Lock的用法
下面是使用临界区进行线程同步
首先定义一个临界区对象
CCriticalSection m_CritSect; //临界对象,同步线程使用
在需要使用到可能起冲突的资源之前,使用Lock把临界区锁起来,用完之后再解锁;
在我这种情况下,因为采集和处理线程在一直进行,对m_pShowBuf这个空间也会一直写入和取出,为了防止出现冲突,所以加一个锁进行管理。
pMain->m_CritSect.Lock();RGBTRIPLE* pSingle = (RGBTRIPLE*)(pMain->left.m_pShowBuf);pMain->m_CritSect.Unlock();pMain->left.m_pIdentify = pSingle;///pMain->IdentifyAll(pMain->left);pMain->m_CritSect.Lock();pSingle = (RGBTRIPLE*)(pMain->right.m_pShowBuf);pMain->m_CritSect.Unlock();pMain->right.m_pIdentify = pSingle;///pMain->IdentifyAll(pMain->right);for (int i = 0; i < 12; i++)pMain->InitalFound[i] = pMain->RobotFound[i];pMain->DrawRobot(pDC);pMain->DrawOpp(pDC);pMain->DrawBall(pDC);
C++中的Lock简单用法相关推荐
- python count函数代码_python中count函数简单用法
python中count函数简单用法 python中count函数的用法 Python count()方法 描述 Python count() 方法用于统计字符串里某个字符出现的次数.可选参数为在字符 ...
- android中checkbox使用方法,Android开发中CheckBox的简单用法示例
本文实例讲述了Android开发中CheckBox的简单用法.分享给大家供大家参考,具体如下: CheckBox是一种在界面开发中比较常见的控件,Android中UI开发也有CheckBox,简单的说 ...
- C#窗体设计中ToolTip的简单用法
本文介绍C#窗体设计中ToolTip的简单用法. 操作流程 1.1. ToolTip信息提示框作用 C#中提供了信息提示框,这有很多用处,可以提示控件或者用户自定义的属性信息,而且可以自动弹出或者用户 ...
- Shellz中awk的简单用法
其实shell脚本的功能常常被低估.在实际应用中awk sed 等用法可以为shell提供更为强大的功能.下面我们将一下awk调用的简单方法进行了总结.方便同学们学习: awk的简单用法: 第一种调用 ...
- **matlab中fprintf函数简单用法**
1.fprintf函数:将数据按指定格式写入到文本文件中. 2.用法说明: fprintf(fid, format, variables): 按指定的格式将变量的值输出到屏幕或指定文件: fid为文件 ...
- python 中 feedparser的简单用法
最近在机器学习实战中用到feedparser ,然后简单总结了一下: feedparser是python中最常用的RSS程序库,使用它我们可轻松地实现从任何 RSS 或 Atom 订阅源得到标题.链接 ...
- C# Winfom 中ListBox的简单用法
Winform控件ListBox的用法 1.如何添加listBox的值 this.listBox1.Items.Add("张晓东"); 2.如何判断listBox集合是否添加过 / ...
- python中parse.add_argument()简单用法
argparse模块简单使用流程以及与命令行的交互 1.导入模块 2.创建解析器 3.添加参数 4.解析参数 5使用参数 完整代码 与命令行的交互 argparse 模块是 Python 内置的一个用 ...
- python list中的sort()简单用法与lambda的使用
序列类型分三种:元组,字符串,列表 list 列表属于序列类型,于元组不同的是 元组类型一旦创建不可修改 使用()或者tuple()创建,而列表类型创建后可以被随意修改 使用[]或list()创建 s ...
最新文章
- 蓝牙协议 HFP,HSP,A2DP等等
- No module named import_export.admin
- docker-compose 1.29.2 下载地址
- Oracle Schema Objects——Tables——TableType
- 【读书笔记】.Net并行编程高级教程--Parallel
- 亚马逊云科技首次发布“三驾马车”中国业务战略
- kali修改root密码
- Eclipse调试进入JDK源码
- qtcreator中常用快捷键总结
- CentOS hadoop 分布式集群的搭建
- 回顾18年我的Java自动化测试框架
- 欧姆龙PLC程序 欧姆龙NX系列PLC程序,ST语言和梯形图配合使用,数据处理使用ST语言,逻辑用梯形图
- Intouch System Platform IDE
- 如何认识会计科目,看懂财务报表
- 74hc595点亮点阵式led交通灯灯 c语言程序,74hc595驱动点阵程序
- LeetCode二叉树中序遍历
- Android之自定义动画框架实现ScrollView滚动动画总结(雷惊风)
- 微信小程序 评论功能实现
- TaobaoSchedule调度管理控制台
- 【ValueError: could not convert string to float: ‘young‘】python利用pandas对string类型的数据序列化
热门文章
- 终于等到你:CYQ.Data V5系列 (ORM数据层)最新版本开源了
- 《Splunk智能运维实战》——3.11 制作折线图显示项目浏览量和购买量随时间的变化...
- 遍历jenkins build后的文件夹,找出最新“build NO.”复制到制定目录进行操作
- MATLAB遍历子文件夹及其下文件
- 基于SpringBoot的个人博客系统
- java中abstract关键字
- 2018-2019-2 网络对抗技术 20165301 Exp3 免杀原理与实践
- Nginx之HTTP过滤模块
- 大型网站系统架构演化之路(转)
- MVC 多级目录菜单