Qt中的多线程

视频链接:https://www.bilibili.com/video/BV1iN411f7dY/?p=2&spm_id_from=pageDriver&vd_source=fa4ef8f26ae084f9b5f70a5f87e9e41b
在Qt中使用多线程可以提高用户体验,若只有一个线程进行处理,则会导致窗口卡顿,这是我们不想看到的
在Qt中使用多线程需要注意
1. 默认的线程在Qt中也称为窗口线程,也叫主线程,负责窗口事件的处理或者窗口控件数据的更新
2. 子线程负责处理后台业务逻辑,子线程中不能对窗口对象进行任何操作,这些事情要交给窗口线程处理
3. 主线程和子线程如果要进行信号的传递,需要使用信号槽机制

常用的API函数

优先级更正,最高为TimeCriticalPriority,最后一个优先级指子线程的优先级跟随主线程的优先级
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用多线程步骤

在这里插入图片描述
在这里插入图片描述

第二种方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在第二种使用多线程方法中
任务对象不需要指定父对象并且一个任务类可以有多个任务函数或者将不同任务对象移动到同一个线程中(任务按照线性执行),建议使用第二种,降低耦合,便于维护

错误示范
当前情况下不再是多线程,而是主线程执行这两个working函数
在这里插入图片描述

线程资源的释放

  1. 在创建线程对象的时候为其指定父对象,这样利用Qt线程树机制,线程资源会被自动释放
    在这里插入图片描述
  2. 接收到整个窗口被析构时的信号,释放线程资源

Qt中的线程池

在Qt中,封装了线程池类,这样我们就不需要手写线程池了,它为我们提供了许多方法,我们只需要掌握其中的几个即可
在这里插入图片描述
在这里插入图片描述
举个例子
多继承保证既能使用信号槽机制,又能被封装成runnable类,只需要重写run方法即可
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/579275.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

go-python 库使用详解

1. 引言 在当今软件开发领域,跨语言编程已经成为一种常见的需求。不同的编程语言各自有其优势和适用场景,因此在项目开发过程中,经常需要将多种编程语言进行集成和协作。Go语言(简称Go)和Python作为两种流行的编程语言…

iOS - Runloop介绍

文章目录 iOS - Runloop介绍1. 简介1.1 顾名思义1.2. 应用范畴1.3. 如果没有runloop1.4. 如果有了runloop 2. Runloop对象3. Runloop与线程4. 获取Runloop对象4.1 Foundation4.2 Core Foundation4.3 示例 5. Runloop相关的类5.1 Core Foundation中关于RunLoop的5个类5.2 CFRunL…

北京小蓝蜂科技有限公司 基本情况

北京小蓝蜂科技有限公司 基本情况 公司概述 北京小蓝蜂科技有限公司(简称“小蓝蜂”)是一家专注于互联网行业的公司,成立于4年前,位于北京市海淀区成府路45号中关村智造大街G座一层J030。小蓝蜂主要业务包括技术开发、技术咨询、技术转让、技术推广等,同时也涉及销售自行…

【Go】六、函数

文章目录 1、函数的定义2、内存分析3、注意点4、函数数据类型5、自定义数据类型(起别名)6、支持对返回值命名 1、函数的定义 语法: func 函数名(形参列表)(返回值类型列表){执行语句..return 返回值列…

公司官网怎么才会被百度收录

在互联网时代,公司官网是企业展示自身形象、产品与服务的重要窗口。然而,即使拥有精美的官网,如果不被搜索引擎收录,就无法被用户发现。本文将介绍公司官网如何被百度收录的一些方法和步骤。 1. 创建和提交网站地图 创建网站地图…

学俄语能不能直接学口语,而不学语法?柯桥俄语培训

语言属性决定,俄语入门就要学语法! 俄语教学实践已经证明,俄语语法必须要学,而且优先学。 这是为什么呢? 这是由俄语本身的特性决定。俄语属屈折语,其典型特征便是以丰富的词形变化来表达词与词之间的关…

QML通过鼠标拖动的位置

当通过鼠标拖动Rectangle 的位置时,可以使用Qt Quick的MouseArea组件来实现 Rectangle {id: rectx:0;y:0width: 200; height: 100color: "lightblue"MouseArea {id: mouseAreaanchors.fill: parentdrag.target: rect//要拖动的项目的IDdrag.axis: Drag.XA…

蓝桥杯算法题-图形排版

题目描述 小明需要在一篇文档中加入 N 张图片,其中第 i 张图片的宽度是 Wi,高度是 Hi。   假设纸张的宽度是 M,小明使用的文档编辑工具会用以下方式对图片进行自动排版: 1. 该工具会按照图片顺序,在宽度 M 以内&…

基于java高校社团招新系统设计与实现

摘要 :大学学生社团的不断壮大发展,让对社团的招新管理越来越重要,如何高效的管理社团,促进社团有效的运行和发展变得尤为关键。学生社团在学生的成长发展过程中有着一定的积极作用,要发挥好社团的优势,管…

商品数据化运营---初步整理

商品数据化运营是指利用数据分析技术来优化商品的销售、管理和推广过程。这种方法结合了数据科学、商业智能、市场分析和消费者行为研究等多个领域的技术和理论,旨在通过分析大量的商品和销售数据来提高商品的市场表现和企业的利润。 以下是商品数据化运营的一些关…

哪里脏扫哪里,脏污识别将成扫地机器人下一个“卷”点?

让“人工式”清洁成为可能。 同质化竞争中的下一个“卷”点? 对于扫地机器人而言,脏污识别并非是个新概念,从2022年开始就有厂商提出,只是相较于其它方面的“内卷”,厂商们最初对它的重视程度并不高,目前脏…

软考103-上午题-【结构化开发】-模块独立

一、命题特点 考试类型: 选择题(3~9分)综合分系题(数据流图【试题一】,15分) 二、系统设计的基本原理 1、抽象 2、模块化 将一个待开发的软件分解为若干个小的简单部分——模块。 每个模块可以独立的开…