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

Qt中的锁(1)

Qt中的锁(1)

加锁,把多个要访问的公共资源通过锁保护起来,把并行执行变成串行执行,

多个线程执行加锁的对象得是同一个对象,不同对象不会互斥

代码:

 //添加一个static成员static int num;//创建锁对象static QMutex mutex;void run();
 	//创建两个线程对象Thread t1;Thread t2;t1.start();t2.start();//加上线程等待,让主线程等待这两线程执行t1.wait();t2.wait();//打印结果qDebug()<<Thread::num;
void Thread::run()
{for(int i=0;i<50000;i++){mutex.lock();num++;mutex.unlock();}
}

其中num是一个两个线程访问的公共变量,之前如果是并发执行,第一个改变,第二个也会改变,就会出现问题

加了锁之后,第一个线程顺利拿到锁继续执行++,此时第二个线程要进来就会阻塞,直到第一个线程释放锁才会放第二个进入,把第二个线程从阻塞中释放

http://www.xdnf.cn/news/19320.html

相关文章:

  • 【lua】table基础操作
  • String str = new String(“abc“)
  • C语言---零碎语法知识补充(队列、函数指针、左移右移、任务标识符)
  • 第十六章 ESP32S3 WATCH_DOG 实验
  • C++优先级队列priority_queue的模拟实现
  • 论文介绍:《Small Language Models are the Future of Agentic AI》
  • Python(五)Python_C API详细
  • Linux三剑客grep-sed-awk
  • 为什么vue3会移除过滤器filter
  • 北斗导航 | RAIM算法改进方案及性能对比分析报告
  • 深度学习:洞察发展趋势,展望未来蓝图
  • 计算机网络面试集合
  • 【AI工具】在 VSCode中安装使用Excalidraw
  • Java全栈开发面试实战:从基础到微服务的深度解析
  • 小迪安全v2023学习笔记(七十四讲)—— 验证机制篇验证码绕过思路SRC挖掘演示
  • Coze源码分析-API授权-获取令牌列表-前端源码
  • LeetCode刷题记录----51.N皇后(Hard)
  • OpenCV安装及其开发环境配置(Windows系统Visual Studio 2022)
  • ros1ros2区别和相同之处
  • 软考 系统架构设计师系列知识点之杂项集萃(136)
  • 【LeetCode - 每日1题】有效的数独
  • Java基础知识(十)
  • plantsimulation知识点 多条RGV驮一台工件图标显示顺序问题
  • C语言类型转换踩坑解决过程
  • 重叠IO模型
  • 深入理解 Linux 驱动中的 file_operations:从 C 语言函数指针到类比 C++ 虚函数表
  • 学习Python中Selenium模块的基本用法(11:弹窗处理)
  • Day18_【机器学习—交叉验证与网格搜索】
  • 【ROS2】ROS2 基础学习教程 、movelt学习
  • PostgreSQL 数据库灾备要点与举例说明**