【Qt 5】Qt中QMutex的一点理解
在Qt的多线程控制中,互斥量的访问最简单的控制是添加一个mutex锁,对一个函数或者变量锁定。
一直不理解QMutex中的锁是如何运行的,或者说如何利用这个锁将变量进行锁定。官方实例是这样的:
1 QMutex mutex;2 int number = 6;3 4 void method1()5 {6 mutex.lock();7 number *= 5;8 number /= 4;9 mutex.unlock();
10 }
11
12 void method2()
13 {
14 mutex.lock();
15 number *= 3;
16 number /= 2;
17 mutex.unlock();
18 }
还是看不懂为什么会锁住变量,主要是没办法根据这个试例进行实验,后经过各种查资料研究一遍遍的试代码,还有从别人博客中的只言片语中,发现有这么一句话:“QMutex::lock()获取一个锁”。
这说明只有一个锁,只能被一个QMutex得到,如果QMutex得不到这个锁,那它将不会执行紧随其后的代码,也就是在两个进程代码中需要共用一个QMutex类的实例,这样才能保证该实例是否获取到一个锁或者得不到一个锁。
如果QMutex::lock()得不到这个锁,那么它将会一直等直到得到该锁为止,而另一个方法QMutex::tryLock()可以检测当前是否可以得到这个锁,如果可以得到则返回1,否则返回0(不会一直等,但如果可以得到锁,那就拿到锁,不会光判断而不获取锁),该函数只执行一次,不会一直等到得到锁为止。
【Qt 5】Qt中QMutex的一点理解相关推荐
- mixin机制 vue_谈谈vue中mixin的一点理解
谈谈vue中mixin的一点理解 vue中提供了一种混合机制--mixins,用来更高效的实现组件内容的复用.最开始我一度认为这个和组件好像没啥区别..后来发现错了.下面我们来看看mixins和普通情 ...
- 关于C#中委托的一点理解
C#中委托是一种类型.可以这么笼统的理解:int型变量代表一个整型,而委托类型的变量代表一个方法的地址(将方法名称传入constructor并实例化该委托变量). --By Brisk Yu 1 为何 ...
- vue中mixin的一点理解
vue中提供了一种混合机制--mixins,用来更高效的实现组件内容的复用.最开始我一度认为这个和组件好像没啥区别..后来发现错了.下面我们来看看mixins和普通情况下引入组件有什么区别? 组件在引 ...
- java 难度_java中难度大一点的面试题
1.请大概描述一下Vector和ArrayList的区别,Hashtable和HashMap的区别.(5) (1)Vector和ArrayList的异同 实现原理,功能相同,可以互用 主要区别: Ve ...
- QT 烦人的parent该如何理解
对话框是GUI程序和用户进行简短交互的顶层窗口,所谓顶层窗口即始终在主窗口之上显示.QDialog是Qt所有类型的对话框窗口的基类,它继承于QWidget,是一种容器类型组件. QWidget是所 ...
- qt延时 QT中简单的延时办法
来自 http://www.qtgtk.com/qt延时-qt中简单的延时办法/ QEventLoop eventloop; QTimer::singleShot(time, &eventlo ...
- Qt关于tabWidget中tab样式的重绘
Qt关于tabWidget中tab样式的重绘 版本说明 版本 作者 日期 备注 0.1 loon 2018.12.29 初稿 目录 文章目录 Qt关于tabWidget中tab样式的重绘 版本说明 目 ...
- 【Qt】Qt学习笔记(更新中)
文章目录 0x00 前言 0x01 Qt简介 1.1 Qt是什么 1.2 Qt发展史 1.3 Qt支持的平台 1.4 使用Qt开发的软件 1.5 Qt的优点 1.6 其它 0x02 创建Qt项目 2. ...
- qt 虚拟键盘中的几个瑕疵
最近使用了下面楼主的虚拟键盘,总体还是挺好用的,只是有几个地方,需要完善下. 基于Qt的可用于嵌入式的虚拟键盘_偷段代码的博客-CSDN博客_qt 嵌入式虚拟键盘这几天完成了一个基于Qt的虚拟键盘的编 ...
最新文章
- 数据分析之CE找数据大法
- 【性能优化】面试官:Java中的对象和数组都是在堆上分配的吗?
- linux为系统分配内存,Linux操作系统知识讲解:走进Linux 内存分配算法
- 错误:pytube.exceptions.RegexMatchError
- 织梦电脑站手机站伪静态+全套伪静态规则-固定目录版
- final、finally与finalize的区别
- 产品经理应该干些啥?
- “约见”面试官系列之常见面试题之第五十三篇之网站的资源优化(建议收藏)
- 台达伺服电机选型手册_机械加工工艺师手册_打包下载
- c语言指针选择排序1,求助利用指针进行选择排序
- 开课吧Java课堂:如何利用valueOf( )方法实现数据转换
- NLP和CV的双子星,注入Mask的预训练模型BERT和MAE
- .NET MVC权限控制设计
- ffplay的音视频同步分析
- android9.0官方下载,安卓9.0系统安装包下载
- JAVE 视音频转码
- mt4怎么用云服务器跟单,免费好用的跟单系统 神速MT4跟单ea系统使用教程
- 【微信小程序】flex布局
- 无法登录到你的账户,通常可以通过从你的账户注销,然后重新登录
- 辅助分类器遇上Domain Adaptation:连续性与不确定性