Qt线程类 Qt 包含下面一些线程相关的类: QThread 提供了开始一个新线程的方法 QThreadStorage 提供逐线程数据存储 QMutex 提供相互排斥的锁,或互斥量 QMutexLocker 是一个便利类,它可以自动对QMutex 加锁与解锁 QReadWriterLock 提供了一个可以同时读操作的锁 QReadLocker 与QWriteLocker 是便利类,它自动对QReadWriteLock 加锁与解锁 QSemaphore 提供了一个整型信号量,是互斥量的泛化 QWaitCondition 提供了一种方法,使得线程可以在被另外线程唤醒之前一直休眠
Qt线程的创建 Qt 线程中有一个公共的抽象类,所有的线程都是从这个QThread 抽象类中派生的,要实现 QThread 中的纯虚函数run(),run()函数是通过 start()函数来实现调用的
1 class MyThread : public QThread { 2 public : 3 virtual void run(); 4 }; 5 6 void MyThread::run() 7 { 8 for ( int count = 0 ; count < 20 ; count ++ ) { 9 sleep( 1 ); 10 qDebug( " Ping
" ); 11 } 12 } 13 14 int main() 15 { 16 MyThread a; 17 MyThread b; 18 19 a
start(); // 自动调用 run(),否则即使该线程创建,也是一开始就挂起 20 b
start(); 21 // 要等待线程a,b 都退出 22 a
wait(); 23 b
wait(); 24 } 25 Qt线程同步 1
QMutex QMutex ( bool recurs