c++ - Qt线程同步

标签 c++ multithreading qt

考虑以下情况:

我有一个不断修改变量的 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/

相关文章:

c++ - 为什么 QList 没有 resize() 方法?

Node.js 异步调用处理和多核扩展

c++ - 如何报告在 QuaGzipFile(QuaZIP 库)上读取数据的进度

c++ - 未找到 regdeletekey 返回文件

c++ - 为什么我的 C++ 实现比 R 源代码慢?

c - 为什么线程1重复获取锁,线程2就无法获取锁?

java - 具有明显抖动和错误的多线程定时应用?

c++ - Qt Windows x64 构建在 IDE 中成功,但在命令行中失败

c++ - 如何在调试字符串的函数中获取函数名称?

c# - 在 C#/C++ 中托管 VST/DX 乐器?