【1.Qt之多线程小入门】

学习C++已经有一段时间了,然而对多线程仅仅停留在概念的阶段,可面试时却经常遇到这样的面试问题。为了加强一下面试的能力,这里先借Qt里面的多线程简单的对其做一个了解,可以在面试的时候说出点道道来。

一、Qt中多线程的引入

这里,我不想用定义来说明什么是多线程,定义不形象,而且只有在大神向菜鸟装13的时候才会用到定义。这就是多线程,记住这个例子:

    如下所示:

    前两个for循环即为 创建多线程,运行多线程,也就是多个void workThread::run()中的循环同时进行,也就是同时运行了多个线程,所以称之为多线程。

void ThreadWidget::slotsStart()
{
<span style="white-space:pre">	</span>for (int i = 0; i < MAXSIZE; i++)
<span style="white-space:pre">	</span>{
<span style="white-space:pre">		</span>workthread[i] = new<span style="white-space:pre">	</span>WorkThread();
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>for (int i = 0; i < MAXSIZE; i++)
<span style="white-space:pre">	</span>{
<span style="white-space:pre">		</span>workthread[i]->start();
    }


<span style="white-space:pre">	</span>ui.pushButton_1->setEnabled(false);
<span style="white-space:pre">	</span>ui.pushButton_2->setEnabled(true);
}


二、QT中多线程的创建


上例代码给我了一个很好的参考,也就是说在Qt中想要实现多线程,仅仅只需要2步:
(1)#include <QThread>
(2)new QThread
(另外,当执行start的时候即为运行run(),run函数只要重写,就可以把其中的程序实现了多线程)

三、Qt中多线程的成员函数

workthread[i]->terminate();<span style="white-space:pre">		</span>//调用QThread基类的terminate()函数,依次终止
workthread[i]->wait();                  //调用QThread基类的wait()函数,使得线程阻塞等待直到退出或超时
workthread[i]->start();                 //调用run()函数

四、实例

参考Qt5开发实例第二版

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值