QThreadPool
A classe QThreadPool gerencia uma coleção de QThreads.
Um pool de threads é uma coleção de runnables com uma fila de trabalho. Os encadeamentos no conjunto são constantemente executados e verificam a fila de tarefas para uma nova tarefa.
Mesmo que os threads sejam leves do que criar um processo, criá-los e destruí-los consome recursos. O Pool de Encadeamentos tem preferência sobre a criação de um novo encadeamento para cada tarefa quando há um grande número de tarefas curtas a serem executadas, em vez de um pequeno número de tarefas longas. Isso evita ter que incorrer na sobrecarga de criar um thread um grande número de vezes. Portanto, criar um ThreadPool é uma solução melhor, pois um número finito de threads pode ser agrupado e reutilizado. As tarefas executáveis ou que podem ser chamadas serão colocadas em uma fila e o número finito de threads no pool se revezará para trabalhar nas tarefas da fila.
Para usar um dos encadeamentos QThreadPool, cria-se uma subclasse QRunnable e implementa-se a função run(). Em seguida, cria um objeto dessa classe e passe-o para QThreadPool::start().