Thread Support in Qt

Qt provides thread support in the form of platform-independent threading classes, a thread-safe way of posting events, and signal-slot connections across threads. This makes it easy to develop portable multithreaded Qt applications and take advantage of multiprocessor machines. Multithreaded programming is also a useful paradigm for performing time-consuming operations without freezing the user interface of an application.

Earlier versions of Qt offered an option to build the library without thread support. Since Qt 4.0, threads are always enabled.

Topics:

Recommended Reading

This document is intended for an audience that has knowledge of, and experience with, multithreaded applications. If you are new to threading see our Recommended Reading list:

The Threading Classes

These classes are relevant to threaded applications.

QtConcurrent

The QtConcurrent namespace provides high-level APIs that make it possible to write multi-threaded programs without using low-level threading primitives.

Concurrent Filter and Filter-Reduce

Concurrent Map and Map-Reduce

Concurrent Run

QAtomicInt

The QAtomicInt class provides platform-independent atomic operations on integers.

QAtomicPointer

The QAtomicPointer class is a template class that provides platform-independent atomic operations on pointers.

QFuture

The QFuture class represents the result of an asynchronous computation.

QFutureSynchronizer

The QFutureSynchronizer class is a convenience class that simplifies QFuture synchronization.

QFutureWatcher

The QFutureWatcher class allows monitoring a QFuture using signals and slots.

QMutex

The QMutex class provides access serialization between threads.

QMutexLocker

The QMutexLocker class is a convenience class that simplifies locking and unlocking mutexes.

QReadLocker

The QReadLocker class is a convenience class that simplifies locking and unlocking read-write locks for read access.

QReadWriteLock

The QReadWriteLock class provides read-write locking.

QWriteLocker

The QWriteLocker class is a convenience class that simplifies locking and unlocking read-write locks for write access.

QRunnable

The QRunnable class is the base class for all runnable objects.

QSemaphore

The QSemaphore class provides a general counting semaphore.

QThread

The QThread class provides a platform-independent way to manage threads.

QThreadPool

The QThreadPool class manages a collection of QThreads.

QThreadStorage

The QThreadStorage class provides per-thread data storage.

QWaitCondition

The QWaitCondition class provides a condition variable for synchronizing threads.

Note: Qt's threading classes are implemented with native threading APIs; e.g., Win32 and pthreads. Therefore, they can be used with threads of the same native API.

Notes provided by the Qt Community

No notes