Вы можете использовать слоты QObject и сигналы или поддержку событий в сочетании с потоками.
По сути, слоты QObject, вызываемые через механизм сигнал / слот, выполняются в потоке, который создал QObject. Вы также можете переместить владение объектом из одного потока в другой, используя QObject :: moveToThread.
Вы также можете использовать QCoreApplication :: postEvent, чтобы публиковать события для выполнения в потоке, в котором был создан объект.
Смотрите больше о потоках и объектах QObject в документации Qt (тема "Threads and QObjects" в индексе).
Переходя к вашей проблеме, вы можете использовать два отдельных объекта в разных потоках, чтобы "распределить" выполнение.