Qt中的多线程
目录
1 为什么需要多线程
2 Qt中使用多线程的一些注意事项
3 QThread类
3.1 QThread类的主要接口
3.2 线程的优先级
4 通过继承QThread类实现多线程
5 从QObject类进行派生实现多线程
5 小结
1 为什么需要多线程
2 使用多线程的一些注意事项
2、子线程和主线程之间的数据传递主要通过信号槽机制进行。
3、子线程用于负责非UI部分的后台逻辑,不可操作窗口中的对象。
3 QThread类
在使用时,通常会定义一个继承QThread类的自定义类,重定义虚函数run()的实现;用一个从该自定义类实例化的对象来管理一个线程;在主线程中通过对象的start()接口来启动线程(start()接口底层会调用run()实现);在run()实现中调用exit()或者quit()能够结束线程的事件循环,在主线程中调用terminate()可以强制结束线程。
但也可以通过从QObject类进行派生的方式来实现多线程,这种方式使用起来会更加灵活,但是在代码实现上会更复杂一些。文章来源:https://www.toymoban.com/news/detail-798865.html
3.1 QThread类的主要接口
1、[公共函数] 判断线程是否结束:bool isFinished()
2、[公共函数] 判断线程是否正在运行:bool isRunning()
3、[公共函数] 获得线程的优先级:Priority priority()
4、[公共函数] 设置线程的优先级:void setPriority(Priority priority)
5、[公共函数] 退出事件循环:void exit(int returnCode = 0)
6、[公共函数] 阻塞线程执行直到线程结束,或者time 毫秒:void wait(unsigned long time)
7、[公共槽函数] 退出线程事件循环:void quit()
8、[公共槽函数] 根据priority,开始调度、执行线程:void start(Priority priority)
9、[公共槽函数] 终止线程:void terminate()
10、[信号] 在线程快结束完成时发射:void finished()
11、[信号] 在线程调用run()实现前发射:void started()
12、[静态公共函数] 获得系统可运行的线程的数量:int idealThreadCount()
13、[静态公共函数] 强制当前线程休眠msecs:int msleep(unsigned long msecs)
14、[静态公共函数] 强制当前线程休眠secs:int sleep(unsigned lon文章来源地址https://www.toymoban.com/news/detail-798865.html
到了这里,关于Qt中的多线程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!