Лучший способ связи между объектами в Qt - использовать сигналы и слоты. Это поточно-безопасный способ, который обрабатывается циклом событий и не требует блокировки с вашей стороны. Вы также можете использовать события, хотя это использование кажется немного странным - событие - это уведомление о происходящем, а не инструмент для общения.
Вы также можете использовать примитивы с потоками, такие как QMutex, QSemaphore, QWaitCondition и QReadWriteLock (то же, что и QMutex, но, как следует из названия, позволяет блокировать чтение или запись не одновременно, а одновременно).
Вы должны прочитать документацию Qt, в частности, я рекомендую вам начать с страницы Thread Support in Qt.
Какой класс был бы хорошим выбором для потока, который работает в течение основного потока и периодически выполняет сетевые запросы? –
Я думаю, что сигналы идеально подходят для этого. В противном случае QReadWriteLock будет работать с общей структурой. – CMircea
@George Edison Вы можете запускать эти сетевые запросы в основном потоке, работая с QTcpSocket в асинхронном режиме (сигналы и слоты usng). – VestniK