考虑以下情况:
我有一个不断修改变量的 QThread(我们称它为 counter
)和一个定期读取 counter
的 QTimer。我知道我必须同步可能被多个线程同时修改的变量,但是 - 在这种情况下,当只有一个线程读取一个变量,一个线程写入一个变量时,我是否也需要同步?
最佳答案
您描述的场景不安全,您仍然需要同步。 Qt 中有几个类可以通过锁定或无锁定机制来帮助您。
看看 QMutex、QReadWriteLock、QSemaphore、QWaitCondition、QFuture、QFutureWatcher、QAtomicInt 和 QAtomicPointer。另外你还有std::atomic<T>
在 C++11 中。
关于c++ - Qt线程同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15842446/