解决什么工作场景
这套资料围绕 Qt5 框架下的 C++ 多线程开发展开。很多做桌面端开发的人在遇到耗时任务时,最头疼的就是界面卡死。比如处理大批量数据解析、网络文件下载或硬件数据轮询时,如果你把这些操作直接塞进主线程,用户界面就会完全失去响应。这门课解决的核心问题就是如何用 QThread 把耗时任务挪到后台,保证主界面流畅,同时确保多个线程在操作同一块内存或资源时不发生数据错乱。它不是泛泛讲 C++ 标准库的 thread,而是紧扣 Qt 自身的事件循环机制和信号槽,讲透这套框架特有的多线程运作逻辑。
适合什么基础与建议先看哪几块
这套资料不适合零基础。你需要具备 C++ 基本语法和面向对象概念,最好能独立写过简单的 Qt 单线程界面程序。资料前两节会带过单线程演示,但如果连 QString、信号槽连接都看不懂,学起来会非常吃力。拿到资料后,建议直接把重点放在 QThread 类的创建方式、start 方法底层逻辑以及线程退出方式这几块。Qt 的多线程有个经典坑点:很多人习惯用继承 QThread 并重写 run 方法的方式,但这在实际工程中容易导致对象依附关系混乱。资料里详细对比了两种创建方式,建议你重点对比它们在事件循环和槽函数执行行为上的差异。另外,connect 函数与线程那一讲的篇幅最长,它直接关系到槽函数到底在哪个线程执行,务必反复看,不要跳过。
学完能独立做什么与资料怎么配合练习
学完这套内容,你应该能独立为一个现有的 Qt 桌面程序拆分出独立的后台工作线程。比如写一个带进度条的后台文件处理模块,主界面能随时响应取消操作,且后台线程能安全退出而不造成内存泄漏。练习时,不要只用眼睛看视频。建议搭一个 Qt5 的编译环境,每看完一种线程创建方式,就写一个小 demo 验证:先故意在主线程跑一个死循环看界面卡死,再改成子线程执行。重点验证 QThread 的 exec 事件循环开启和关闭前后,跨线程发信号时槽函数的执行表现。把同步互斥和线程安全的概念放到自己写的 demo 里去复现死锁,看看界面在等待线程执行完毕时到底呈现什么状态。只有把这些坑自己踩一遍,这套资料的价值才算榨干了。
熟练掌握Qt5框架下多线程相关的类的使用、深入理解多线程的同步互斥、线程安全,深入Qt框架!
课程目录
* 01 Qt多线程编程简介.mp4 08:00
* 02 Qt单线程程序演示.mp4 06:55
* 03 Qt多线程QThread类详解.mp4 10:35
* 04 Qt创建多线程(方式一).mp4 31:44
* 05 QThread类start方法的奥秘.mp4 08:01
* 06 Qt等待线程执行完毕.mp4 19:29
* 07 Qt线程的三种退出方式.mp4 15:01
* 08 Qt设置线程的优先级.mp4 21:59
* 09 QThread的exec事件循环(一).mp4 19:23
* 10 QThread的exec事件循环(二).mp4 13:28
* 11 connect函数与线程.mp4 46:24
* 12 Qt创建多线程(方式二).mp4 15:24
* 13 使用多线程解决界面卡顿(方式一).mp4 10:07
* 14 使用多线程解决界面卡顿(方式二).mp4 14:12
* 15 QThreadStorage线程数据存储.mp4 17:00
* 16 Qt线程的同步与互斥.mp4 03:23
* 17 Qt线程互斥之QMutex类.mp4 18:03
* 18 Qt线程互斥之QMutexLocker类.mp4 07:11
* 19 Qt线程互斥之QRecursiveMutex类.mp4 11:45
* 20 Qt线程互斥之QReadWriteLock类.mp4 28:23
* 21 Qt线程互斥之QReadLocker与QWriteLocke.mp4 09:35
* 22 Qt线程互斥之QSemaphore类.mp4 22:22
* 23 Qt线程同步之QWaitCondition(一).mp4 34:04
* 24 Qt线程同步之QWaitCondition(二).mp4 11:08
* 25 Qt原子类型之QAtomicInteger.mp4 14:25
* 26 Qt可执行类之QRunnable.mp4 22:04
* 27 Qt线程池简介.mp4 07:21
* 28 Qt线程池之QThreadPool(一).mp4 36:01
* 29 Qt线程池之QThreadPool(二).mp4 44:12
* 30 Qt线程池之QThreadPool(三).mp4 17:42
* 31 Qt高并发之QtConcurrent(一).mp4 46:23
* 32 Qt高并发之QtConcurrent(二).mp4 41:04
* 33 Qt高并发之QtConcurrent(三).mp4 18:51
* 34 Qt多线程编程总结.mp4 12:18
* 35 结课测试






