Как реализованы потоки? если с помощью QThread, то приблизительная схема примерно такова:
class MyThread: public QThread;
//..............................................................
MyThread::run()
{
<инициализация обработчика>;
exec();
}
Бесконечный цикл в обработчике не нужен.
Для опроса очереди можно использовать таймер с постоянным или плавающим интервалом опроса.
Однако, на мой взгляд лучше заставлять обработчики ловить сообщения от менеджера очереди о приходе данных.
Плюсы этого подхода - отсутствие необходимости периодического просмотра очереди. как следствие - сокращение постоянной нагрузки на проц.
Минусы - нужно реализовать менеджер очереди; нужно более сложное управление приоритетами;более сложная архитектура приложения;