Qt多线程总结
来源:互联网 发布:java工作流开发 编辑:程序博客网 时间:2024/06/05 00:58
一、Qt下使用线程主要有两种方法。
一种是传统的继承QThread类,重写run方法。
该方法已经落伍了,主要原因线程不安全,需要自己手动加锁,比较麻烦,所以推荐使用方法二。
定义一个工作线程(Worker类)继承QObject,在主线程(Controller类)中创建QThread对象、Worker对象,Worker对象调用moveToThread方法。
这样一来,整个Worker对象都移入线程中(线程安全),然后在主线程中每发射一次信号给工作线程,工作线程的槽函数就执行一次。
工作线程执行完,再发射信号到主线程中,以便释放内存。
新建一个Woker对象和一个QThread对象,才能创建一个线程,如果要创建若干多个线程,则需要若干个Woker对象和QThread对象了。
二、Qt下创建多线程也有两种方法。
一种是使用容器(如:QVector类、QList类)去装入多个Worker对象和多个QThread对象,使用[](类似数组的操作),即可访问单个对象。
另一种是使用并发类QtConcurrent。
三、其它问题。
1、使用线程时,能编译通过但是提示段错误,原因是没有在构造函数内new Worker对象和QThread对象。
2、内存泄漏,线程做完时,需要调用quit方法、wait方法,还要delete Worker对象和QThread对象。如果后面还要使用该线程,则再加上new Worker对象和QThread对象。
3、调用任务管理器,可以观察到是否出现内存泄漏。没有任何操作,内存使用量不停增加,即为内存泄漏。
0 0
- Qt多线程同步总结
- Qt多线程同步总结 .
- Qt多线程简单总结
- Qt多线程总结
- QT多线程使用总结
- Qt多线程同步总结
- Qt多线程编程总结(一)
- Qt多线程编程总结(一)
- Qt多线程编程总结(一)
- [转] Qt多线程编程总结(一)
- Qt多线程编程总结(一)
- QT多线程的设计(imxiangzi总结)
- Qt多线程
- Qt多线程
- Qt多线程
- qt 多线程
- Qt多线程
- QT多线程
- PHP设计模式系列(七):外观模式
- 根据文件头判断文件类型
- linux下C结构体初始化
- 前端技术
- (POJ 3067)Japan 树状数组
- Qt多线程总结
- CSU-1212-中位数
- 剑指offer-26.二叉搜索树与双向链表
- B树的插入、删除与遍历
- 软件光栅化渲染器(三)
- csv 文件的创建
- 关于Tomcat脚本启动闪退问题
- 蓝桥杯 Java 入门训练 圆的面积
- Unreal Engin_画廊制作笔记 _008<灯光处理,夜晚的画廊灯光设置>