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.
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 QThread*:
QThread* thread = new QThread();
thread->start();
The start() function 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...