Qt多线程编程

1 线程创建方法

    参考资料[2]介绍了两种实现多线程的方式:a)QObject::moveToThread();b)继承QThread类。参考资料[1]主要介绍了第b)种方式的简单实现方法。

2 线程间通信/数据共享

    多线程间的通信非常重要,参考资料[3][6]说明了通过a)信号/槽进行通信的方法;参考资料[4]说明了通过b)事件进行通信的方法。参考资料[6]还提出了d)内存共享的方法。其实,在Qt官方的说明文档当,力荐第1种方法,例如Qt5.2.1的Mandelbrot Example就说明了如何通过添加工作线程的方法来减轻GUI线程的负担,数据传输用的就是信号/槽的方法。

3 终止线程

    在一个线程正在执行的过程中,若要终止此线程,根据参考资料[9]的说明,可以通过下面的方式实现。

thread->terminate();
    说明:thread是一个QThread子类的指针对象。

参考资料

[1]QThread简单示例 

[2]Qt学习篇 Qthread实现多线程操作

[3]QT子线程与主线程的信号槽通信

[4]多线程及通过事件进行通信

[5]QT小例子GUI(主)线程与子线程之间的通信

[6]Qt学习:线程间共享数据

[7]Qt学习:线程的创建和同步

[8]qt线程(转)----这篇很专业

[9]Qt跨线程发送信号与元数据

[10]QT如何结束一个线程

你可能感兴趣的:(Qt多线程编程)