QT多线程的使用
程序员文章站
2022-06-04 19:05:29
今天给大家介绍三种QT里面使用多线程的方法 1、继承QThread并且重写run方法来实现多线程 2、使用movetothread方法实现多线程,该类一定要继承QObject 3、使用c++11的thread来实现多线程 4、来看一看这三种多线程如何使用 QT里面三种多线程介绍到这里 ......
今天给大家介绍三种qt里面使用多线程的方法
1、继承qthread并且重写run方法来实现多线程
#ifndef myqthread_h
#define myqthread_h
#include <qthread>
class myqthread : public qthread
{
public:
myqthread();
void run();
};
#endif // myqthread_h
2、使用movetothread方法实现多线程,该类一定要继承qobject
#ifndef myobjectthread_h
#define myobjectthread_h
#include <qobject>
class myobjectthread : public qobject
{
q_object
public:
explicit myobjectthread(qobject *parent = nullptr);
signals:
public slots:
void showid();
};
#endif // myobjectthread_h
3、使用c++11的thread来实现多线程
#ifndef myc11thread_h
#define myc11thread_h
class myc11thread
{
public:
myc11thread();
void showc11id(int i);
};
#endif // myc11thread_h
4、来看一看这三种多线程如何使用
void showid(int i)
{
qdebug() << "全局函数的现成id" << qthread::currentthreadid() << "i:" << i;
}
mainwindow::mainwindow(qwidget *parent) :
qmainwindow(parent),
ui(new ui::mainwindow)
{
ui->setupui(this);
//qthread重写runfangfa
tmpmyqthread = new myqthread();
tmpmyqthread->start();
//用movetothread,但是这个类要继承object
qthread *th = new qthread;
tmpmyobject = new myobjectthread();
//把tmpmyobject这个类的对象放到线程中
tmpmyobject->movetothread(th);
//通过信号槽的方法,把槽函数运行在线程中
connect(th,signal(started()),tmpmyobject,slot(showid()));
th->start();
//c11原始的thread把全局函数初始化到线程
std::thread th1(showid,2);
th1.detach();
//c11原始thread把类的函数初始化到线程运行
tmpmyc11 = new myc11thread();
std::thread th2(&myc11thread::showc11id,tmpmyc11,2);
th2.detach();
qdebug() << "mainthread:" << qthread::currentthreadid();
}
qt里面三种多线程介绍到这里
上一篇: 我媳妇脾气不好怎么了?
推荐阅读
-
JavaEE基础day02 1.定义Java中的变量 四类八种 2.变量定义和使用的注意事项 3.数据类型的转换、强制数据类型转换4.算数运算符、比较运算符、逻辑运算符、赋值运算符、三元运算符
-
webpack3、4的基本的使用方法
-
Qt4.7中 默认的构造函数
-
jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
-
使用php生成图片,如何将文字放置到图片的中心?
-
详细介绍MvcPager分页控件使用的实例方法
-
WordPress开发中的get_post_custom()函数使用解析,wordpressgetpost_PHP教程
-
WordPres对前端页面调试时的两个PHP函数使用小技巧_PHP
-
html2canvas的使用_html/css_WEB-ITnose
-
jQuery.delegate()函数的使用方法详解