qt_线程一
Updated:
Contents
QT 线程的基础知识
线程类
- QThtrad 提供了开始一个新线程的方法
- QThreadStorage 提供逐线程数据的存储
- QMutex 提供互斥的锁
- QMutexLocker 是一个便利类,它可以自动对QMutex加锁与解锁
- QReadWriterLock 提供了一个可以同时读操作的锁
- QReadLocker与QWriteLocker 是便利类,它自动对QReadWriteLock加锁与解锁
- QSemaphore 提供了一个整型信号量,是互斥量的泛化
- QWaitCondition 提供了一种方法,使得线程可以在被另外线程唤醒之前一直休眠
创建一个线程
创建一个线程,必须子类化QThread,并且重写它的run方法
|
|
之后创建这个线程对象的实例,调用QThread::start()。run()里面的代码在另外的线程中进行。
注意:QCoreApplication::exec()必须总是在主线程(执行main()的那个线程)中被调用,不能从一个QThread中调用。在GUI程序中,主线程也被称为GUI线程,因为它是唯一一个允许执行GUI相关操作的线程。另外,你必须在创建一个QThread之前创建QApplication(or QCoreApplication)对象。
线程的同步,可重入与线程安全稍后在分析。
推荐资料: