Qt多线程:使用互斥锁

1、官方文档:QMutex类提供线程间的访问序列化。QMutex的目的是保护一个对象、数据结构或代码片段,这样每次只有一个线程可以访问它(这类似于Javasynchronized关键字)。通常最好将互斥对象与QMutexLocker一起使用,因为这样可以很容易地确保一致地执行锁定和解锁。2、官方示例:QMutexmutex;intnumber=6;v…

大家好,又见面了,我是你们的朋友全栈君。

1、官方文档:

QMutex类提供线程间的访问序列化。
QMutex的目的是保护一个对象、数据结构或代码片段, 
这样每次只有一个线程可以访问它(这类似于Java synchronized关键字)。 
通常最好将互斥对象与QMutexLocker一起使用,因为这样可以很容易地确保一致地执行锁定和解锁。

2、官方示例:

 QMutex mutex;
 int number = 6;

 void method1()
 {
     mutex.lock();
     number *= 5;
     number /= 4;
     mutex.unlock();
 }

 void method2()
 {
     mutex.lock();
     number *= 3;
     number /= 2;
     mutex.unlock();
 }

即使用户同时调用两个函数,在同一时刻,也只会执行一个函数内操作number的代码。

3、配合QMutexLocker使用

单独使用QMutex时,每次都需要加锁、解锁,显得不太方便,QMutex配合QMutexLocker使用是比较推荐的方法:
头文件:

#include <QMutex> 
...
private:
    QMutex _mutex;
...

同一个例子:使用QMutexLocker极大地简化了代码,并使其更具可读性:

 QMutex m
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126621.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 计划任务定时关机不执行_IT运维管理制度

    计划任务定时关机不执行_IT运维管理制度《定时执行专家》是一款制作精良、功能强大、简单易用的专业级定时任务执行软件。软件具有18种任务类型、11种任务触发方式(包含Cron方式),能够达到毫秒级的执行精度,并且全面支持Cron表达式。软件采用多线程方式检测任务触发和任务执行,可以同时支持数十个任务的毫秒级触发。软件无需安装,无时间限制,欢迎下载使用。……………

    2022年9月13日
    2
  • haproxy配置详解_核心交换机配置教程

    haproxy配置详解_核心交换机配置教程Linux Haproxy详细配置教程

    2022年4月20日
    49
  • Python骚操作 | 还原已撤回的微信消息

    Python骚操作 | 还原已撤回的微信消息

    2021年6月12日
    92
  • SpringBoot跨域设置(CORS)「建议收藏」

    SpringBoot跨域设置(CORS)「建议收藏」目录什么是跨域跨域资源共享(CORS)1.简单请求2.非简单请求SpringBoot设置CORS1.配置过滤器CorsFilter2.实现接口WebMvcConfigurer3.使用注解@CrossOrigin什么是跨域请求url的协议、域名、端口三者有任意一个不同即为跨域。跨域问题是因为浏览器的同源策略的限制而产生的。同源:请求url的协议、域名、端口三者都相同即为同源(同一个域)。同源策略:同源策略(Sameoriginpolicy)是一种约定,他是浏览器最核心也最基本的安全

    2022年6月18日
    26
  • xiao zhang   jia you[通俗易懂]

    xiao zhang   jia you[通俗易懂]加油! 转载于:https://blog.51cto.com/755633522/542479

    2022年10月6日
    3
  • 推荐系统中的常用算法——Wide & Deep

    推荐系统中的常用算法——Wide & Deep这篇文章是阅读《Wide&amp;DeepLearningforRecommenderSystems》后的总结,该文章中提出结合Wide模型和Deep模型的组合方法,对于提升推荐系统(RecommendationSystem)的性能有很重要的作用。1、背景本文提出Wide&amp;Deep模型,旨在使得训练得到的模型能够同时获得记忆(memorization)…

    2022年5月23日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号