QRecursiveMutexclass provides access serialization between threads. 更多 …
New in version 5.14.
QRecursiveMutexclass is a mutex, likeQMutex, with which it is API-compatible. It differs fromQMutexby acceptinglock()calls from the same thread any number of times.QMutexwould deadlock in this situation.
QRecursiveMutexis much more expensive to construct and operate on, so use a plainQMutexwhenever you can. Sometimes, one public function, however, calls another public function, and they both need to lock the same mutex. In this case, you have two options:
Factor the code that needs mutex protection into private functions, which assume that the mutex is held when they are called, and lock a plain
QMutexin the public functions before you call the private implementation ones.Or use a recursive mutex, so it doesn’t matter that the first public function has already locked the mutex when the second one wishes to do so.
QRecursiveMutex
¶
Constructs a new recursive mutex. The mutex is created in an unlocked state.
另请参阅
lock()
unlock()