QThread:Qt提供的最基础的线程类,一个对象管理一个线程,本身维护线程启动中止,建立销毁,固然也能基于此类本身创建一个线程池html
QThreadPool:Qt提供的基于QThread实现的线程池,只须要提供给线程池“任务”便可,每个“任务”须要继承QRunnable,pool还贴心的帮忙在运行完成后释放内存。只不过runnable不支持信号槽,能够作多重继承QObject便可。安全
QtConcurrent:并行计算的高级API,用起来很方便,彻底不须要想线程的问题,全都是静态函数,能够运行自定义函数也提供了对容器的操做函数。多线程
相关博客:函数
Qt多线程-QThread
QThread安全的结束线程
Qt多线程-QThreadPool线程池与QRunnable
Qt多线程-QtConcurrent并行运算高级APIpost
只有QThread支持。可是其余两个能够用QApplication::postEvent发出事件线程
QThread彻底支持,QThreadPool的QRunnable能够经过多重继承支持htm
Concurrent提供的map/filter函数能够利用QFutureWatcher,使用此方式可用信号控制线程,但仍然无发经过信号槽对线程的数据作修改对象
run就彻底与信号槽无缘了,毕竟调用的只是一个函数继承
这个优先级设置之后不必定有效,要看系统事件
QThread彻底支持,能够用setPriority函数
Concurrent全部函数都支持QFuture,同时Concurrent支持指定QThreadPool