http://doc.qt.io/archives/qt-4.7/qmutexlocker.html

此类将互斥锁锁定在其构造函数中,因此,如果在创建互斥锁时发生错误,我们是否能够知道它是什么错误(构造函数不返回任何内容)?

这是某种劣势吗?

我在这里遗漏了一点吗?

最佳答案

QMutexLocker使用指向(并处理)QMutex对象的指针(而不是pthread_mutex_t对象)(即使a QMutex可以在pthread_mutex_t的顶部实现)。

锁定/解锁QMutex对象不会返回任何类型的错误代码(QMutex::lock()QMutex::unlock()返回void)。

在较低的“ pthread-level”上可能发生的任何错误将由QMutex对象在内部处理,导致C ++异常或导致代码中的缺陷(例如死锁)(例如,如果尝试递归获取非递归的QMutex)。

10-08 02:10