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
)。