The best way to communicate between objects in Qt is to use signals and slots. This is a thread-safe method that is handled by an event loop and does not require blocking on your part. You can also use events, although this use seems a little strange - an event is a notification of what is happening, not a tool for communication.
, QMutex, QSemaphore, QWaitCondition QReadWriteLock ( , QMutex, , , ).
Qt, , Qt.