Qt provides a sophisticated threading system. We assume you already know threading basics and the associated issues (deadlocks, threads synchronization, resource sharing, and so on) and we will focus on how Qt implements it.
The QThread
is the central class of the Qt threading system. A QThread
instance manages one thread of execution within the program.
You can subclass QThread
to override the run()
function, which will be executed in the QThread
framework. Here is how you can create and start a QThread
:
QThread thread; thread.start();
The start()
function calling will automatically call the run()
function of the thread and emit the started()
signal. Only at this point will the new thread of execution be created. When run()
is completed, the thread
object will emit the finished()
signal.
This brings us to a fundamental aspect of QThread
: it works seamlessly with the signal/slot mechanism. Qt is an event-driven framework, where a main event loop (or the GUI loop) processes...