QT QThread 简单实现多线程
2017-11-21 19:39
197 查看
在本篇,会实现一个非常简单的线程。
一.创建一个工程
就是在QT总结第一篇介绍的,创建一个mainwindow。
二.在main.cpp中创建线程
整个代码中,我加入了大量的注释,很容易就可以弄懂
整个代码可以分为几步:
1)创建一个线程的类
2)实现类中的run函数
3)在main函数中,创建一个针对于该类的对象
4)通过该对象启动这个线程
到这里,代码就算完成了。线程一旦启动,就会去调用run函数,这个run函数会和主线程共同运行
}
该函数一旦运行,两个线程都会启动,并且两个线程的run函数都会执行,并各自循环打印hello和word
以下是截图
一.创建一个工程
就是在QT总结第一篇介绍的,创建一个mainwindow。
二.在main.cpp中创建线程
整个代码中,我加入了大量的注释,很容易就可以弄懂
整个代码可以分为几步:
1)创建一个线程的类
2)实现类中的run函数
3)在main函数中,创建一个针对于该类的对象
4)通过该对象启动这个线程
到这里,代码就算完成了。线程一旦启动,就会去调用run函数,这个run函数会和主线程共同运行
#include <QtGui/QApplication> #include <qthread.h> #include <windows.h> #include "mainwindow.h" /*创建一个线程类*/ class MyThread1 : public QThread //这里创建一个线程的类,
{ // 该类继承于QThread,其中只有一个函数runpublic:
virtual void run(); //run函数式该线程的执行函数,也就是说,
//只要这个线程被启动,那么该函数就会被调用 }; /*一个线程的主函数,循环打印一句话*/ void MyThread1::run() { while(1) { qDebug("hello"); //通过qDebug打印hello Sleep(1000); //延迟1S } } /*创建另一个线程类*/ class MyThread2 : public QThread 4000 { public: virtual void run(); }; /*一个线程的主函数,循环打印一句话*/ void MyThread2::run() { while(1) { qDebug("word"); Sleep(1000); } } int main(int argc, char *argv[]) { /*定义一个线程,并且启动该线程*/ MyThread1 thread1; //这里通过刚才定义的第一个类,实例化一个对象 thread1.start(); //这里启动该线程,然后run函数开始执行。
//(和linux下的那个线程函数差不多一个意思) /*定义另一个线程,并且启动该线程*/ MyThread2 thread2; thread2.start(); QApplication a(argc, argv); MainWindow w; w.show(); return a.exec();
}
该函数一旦运行,两个线程都会启动,并且两个线程的run函数都会执行,并各自循环打印hello和word
以下是截图
相关文章推荐
- python 多线程简单实现
- ActiveMQ(六):spring+ActiveMQ+线程池实现简单的分布式,多线程,多任务的异步任务处理系统
- 多线程编程在C++下实现的简单实例
- java多线程以及java网络编程实现简单的聊天系统
- Java 多线程(八)——实现简单线程池
- 多线程简单运用---时钟的实现
- java多线程问题中简单的存取款实现
- QT5 多线程简单实现
- Java 多线程(八)——实现简单线程池
- Python实现简单多线程任务队列
- 多线程简单实现与线程安全问题的简单处理
- Java网络与多线程系列之1:实现一个简单的对象池
- Qt---多线程的简单实现
- c语言 多线程的简单实现 线程锁
- Linux下简单的多线程编程--线程池的实现
- 多线程~~简单的线程创建,C语言实现
- Linux C TCPSocket 传输文件简单实例-多线程实现
- C++实现的一个简单的多线程程序
- JAVA 多线程的简单实现
- Java多线程实现简单的售票程序