QRunnable encapsulates the task you want to complete in a separate thread. If you need to know which thread performs this task or shares it between threads, then you are probably doing something more complex than the fact that QThreadPool is designed to expand capabilities. In this case, you will create your own behavior using QThread directly. QRunnable's “launch” with QThreadPool is similar to the sequence of this task for an available thread in the pool. Whereas starting QThread actually allocates a new OS thread and executes it.
QRunnable. , , QRunnable. - QThread, QThreadPool QRunnable. , (, QMutex, QMutexLocker, QReadWriteLock, QSemaphore / QWaitCondition) QRunnable.