3

是否可以将 c++11 互斥锁与 Qthread 混合使用?

例如,如果您有一个要与 qt gui 一起使用的 Dll,它将从您的 Dll 加载一个函数,以及一个在单独的线程上更新 gui 的函数。Dll 函数包含一个大循环并放置了一个 C++11 互斥锁,因此只有一个线程可以读取或写入 Dll 函数中使用的变量。使用 QThreads 是否可能或可行,或者 QThreads 必须与 QMutexs 一起使用,同样用于 C++11 线程操作?

4

1 回答 1

1

我想不出为什么不能在 QThread 中使用 c++11 互斥锁。锁定 QMutex 或 C++11 互斥体将具有相同的效果:除非已解锁(或配置为递归锁定,如果可用),否则无法重新锁定它。我不认为 QMutex 实现与 QThread 紧密耦合。

我想 C++11 互斥体和 QMutex 在 Linux 中实现时都依赖于 pthread。在 Windows 上实现时,它们可能都依赖于 Windows API。

当然,如果我错了,请随时纠正我。

顺便说一句,你有没有用 QThread 运行任何测试 usign C++11 互斥锁?

于 2013-06-03T15:56:43.243 回答