Qt线程
1、Qt线程介绍
Qt程序默认只有一个线程,而该线程要时刻响应界面,所以Qt中设计了信号和槽机制,当执行一个操作时,界面会发出信号,然后槽函数响应并执行,然后再返回界面,当执行一个耗时较长的操作时,界面会卡住。
所有当需要执行耗时较操作时,更适合让新的线程去完成。
2、QThread类
Qt中提供了一个线程类,所以在Qt中使用线程非常方便。
该类无法指定入口函数,需要继承该类,然后覆盖run函数,作为线程的入口函数。
start函数负责启动线程,当它调用后,run函数就开始执行。
注意:一旦从run函数返回,线程就结束了,重新调用start可以让它重新执行。
3、终止线程
调用terminate成员函数可以让线程终止,但是否立即终止由线程高度策略决定。
setTerminationEnabled
可以设置线程是否允许外部终止,该函数只能由线程自己调用才有效。
4、获取线程ID
currentThreadId成员函数用于获取当前线程的线程ID。
5、等待线程结束
wait该函数用于等待线程结束,线程自己不能调用该函数,只能由外部调用,可以设置等待时,默认参数是无符号long类型的最大值。
线程同步
一、互斥量