Qt 多线程的用法还是比较简单的,也比较好用,接下来我们就分析分析如何使用。

  说起Qt 线程的使用方式,一般有2种使用方式,具体哪种比较好看自己心情了,现在有官方的推荐用法,用不用还是看你心情的

    好,进入正题,我们现在只追求如何使用,后续有时间在慢慢剖析想想为什么这样也可以,,,:

  

  第一种方式:直接继承QThread方式(官方不推荐使用这种)

      1>新建一个类,比如叫A

          

          ------A.h----头文件

          #include <QThread>  //添加这个1

          class A :public QThread     //继承QThread

          {

            A();

            ~A();

            protected:

              virtual void run();    //添加这个2,这个是重点,子线程都是在里面的

          }

          ------A.cpp----源文件

          void A::run()

          {

            ///这里写你需要执行用子线程需要执行的各种语句,最好全部所有定义都要在这函数里,先用嘛,,

            //  不然,先呵呵。

          }

        -----看如何使用:

        int main()

        {

          A a;

          a.start();   //一定要这样调用,不能直接调用run函数,不然会是主线程执行的

        }

    

    结语:这样的方式就实现了多线程使用啦,在qt里面一定要继承改写,如果是觉得麻烦的应该是还没有适应面向对象思想,没关系,多看几遍就好了,我当初也不是很习惯这样,觉得开线程不如直接调用类似CreateThread();这样的函数看起来多明朗多舒服呀,。。。。

      这里解释一下补充:

      A a;//创建了一个对象,然后会执行A的构造函数,这个执行线程呢,就是我们的主线程啦,

      a.start(); //这语句会开辟一个子线程去执行run函数,所以run()里面都是 由子线程执行的

      以上这两句我们就产生了线程啦,

      但是!!!

      如果你这样调用

        a.run();   //这样的话,就是主线程去执行run()函数啦啦啦,就好比主线程去执行构造函数一样

        所以记住,用多线程就调用start()函数,没错的

  

   最后,以上就是qt多线程用法1的简单演示,先能跑起来就可以了,等用几次了在去剖析剖析,啊这样也可以啊  。。。

    比如 啊,跨线程操作的各种无脑揪心的问题,,,,,,

  

        

Qt之先用了再说系列-多线程方式1的更多相关文章

  1. Qt之先用了再说系列-多线程方式2

    继Qt之先用了再说系列-多线程方式2 本次说说在Qt里多线程使用第2种方式,也是qt官方比较推荐用的方式,相对与直接继承QThread 重写run方法中灵活了一些,如果第一次使用可能会转不湾来,没有直 ...

  2. 移动开发在路上-- IOS移动开发系列 多线程二

    最近太忙没太多的时间,忙碌的码农生活空下来一点时间,都会挤出来看一些技术或者咨询的文章,废话不多说,直奔主题. 接着上一次的继续说. 定时器在多线程的使用 NSRunLoop 是线程相关的基础框架的一 ...

  3. 【ALB技术笔记】基于多线程方式的串行通信接口数据接收案例

    基于多线程方式的串行通信接口数据接收案例 广东职业技术技术学院  欧浩源 1.案例背景 在本博客的<[CC2530入门教程-06]CC2530的ADC工作原理与应用>中实现了电压数据采集的 ...

  4. 【ALB学习笔记】基于多线程方式的串行通信接口数据接收案例

    基于多线程方式的串行通信接口数据接收案例 广东职业技术技术学院  欧浩源 1.案例背景 在本博客的<[CC2530入门教程-06]CC2530的ADC工作原理与应用>中实现了电压数据采集的 ...

  5. java 网络编程基础 TCP/IP协议:服务端ServerSocket;客户端Socket; 采用多线程方式处理网络请求

    1.Java中客户端和服务器端通信的简单实例 Java中能接收其他通信实体连接请求的类是ServerSocket,ServerSocket对象用于监听来自客户端的Socket连接,如果没有连接,它将一 ...

  6. Qt封装QTcpServer参考资料--QT4中构建多线程的服务器

    首先说一下对多线程这个名词的理解过程.以前听说过很多次多线程这个词,而且往往与服务器联系起来,因此一直把多线程误解为服务器特有的功能:直到这次课程设计,仔细学习了一下多线程的机制,才知道真正的意思.简 ...

  7. 【QT】子类化QObject+moveToThread实现多线程

    往期链接: <QThread源码浅析> <子类化QThread实现多线程> 从往期<QThread源码浅析>可知,在Qt4.4之前,run 是纯虚函数,必须子类化Q ...

  8. Qt之先用了再说系列-信号与槽

    QT之信号与槽 简介:信号与槽可是Qt最大成功点,也是整个Qt基本核心机制,如果不会信号与槽,将无法领略Qt之美: 1.信号与槽函数原型: QObject::connect(const QObject ...

  9. C#基础系列——多线程的常见用法详解

    前言:前面几节分别介绍了下C#基础技术中的反射.特性.泛型.序列化.扩展方法.Linq to Xml等,这篇跟着来介绍下C#的另一基础技术的使用.最近项目有点紧张,所以准备也不是特别充分.此篇就主要从 ...

随机推荐

  1. js&jsp规范问题

    1.js初始化问题    一般与数据库交互的需要进行初始化,固定控件一般不需要初始化.有些需要整体浏览器页面校准的可能需要初始化.    //初始化操作按钮        $(function(){  ...

  2. nginx: command not found

    nginx 正常启动,可以访问服务器地址:welcome to nginx 使用nginx -t 等命令时 报错:nginx: command not found 这是环境变量未配置 配置环境变量 v ...

  3. lua的table表去重

    推荐阅读:  我的CSDN  我的博客园  QQ群:704621321  我的个人博客 方法一 用过lua的人都知道,lua的table中不允许存在相同的key,利用这个思想,我们可以将原始table ...

  4. 【Python学习笔记七】从配置文件中读取参数

    将一些需要更改或者固定的内容存放在配置文件中,通过读取配置文件来获取参数,这样修改以及使用起来比较方便 1.首先是配置文件的写法如下一个environment.ini文件: 里面“[]”存放的是sec ...

  5. 树形dp 之 小胖守皇宫

    题目描述 huyichen世子事件后,xuzhenyi成了皇上特聘的御前一品侍卫. 皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状:有边相连的宫殿间可以互相望见.大内保卫森严,三步一岗,五步一 ...

  6. Python基础学习之环境搭建

    Python如今成为零基础编程爱好者的首选学习语言,这和Python语言自身的强大功能和简单易学是分不开的.今天我们将带领Python零基础的初学者完成入门的第一步——环境搭建.本文会先来区分几个在P ...

  7. vue图片上传的简单组件

    <template> <div class="rili" id="rili"> <div class="updel&qu ...

  8. 【管理员已阻止你运行此应用】windows defender图标打叉,无法打开mmc.exe解决办法

    今天开机遇到一个奇怪的问题,发现windows defender图标上面打了个×: 打开按照系统提示需要restart服务,但是无法重启服务,会出现错误,然后尝试手动重启服务,准备打开管理控制台mmc ...

  9. Terminal终端控制台常用操作命令

    新建文件夹和文件 cd .. 返回上一级 md test 新建test文件夹 md d:\test\my d盘下新建文件夹 cd test 进入test文件夹 cd.>cc.txt 新建cc.t ...

  10. Typora + PicGo + Gitee 实现图片自动上传到图床

    1.下载并安装 Typora (windows版本) https://typora.io/#windows 2.设置图像 文件 -- 偏好设置 -- 图像 3.上步点击下载PicGo(app) 后,去 ...