c++多线程锁能够使用absl::Mutex std::mutex这两种,下面是demo代码。c++
使用absl:Mutex的时候打印:git
[mutex.cc : 1338] RAW: Cycle:
[mutex.cc : 1352] RAW: mutex@0x683b68 stack:
@ 0x438562 absl::DebugOnlyDeadlockCheck()
@ 0x4387b2 absl::Mutex::Lock()
@ 0x4353d0 runThread2()
@ 0x7f12851c5184 start_thread多线程
[mutex.cc : 1352] RAW: mutex@0x683b70 stack:
@ 0x438562 absl::DebugOnlyDeadlockCheck()
@ 0x4387b2 absl::Mutex::Lock()
@ 0x4352e2 runThread1()
@ 0x7f12851c5184 start_thread线程
[mutex.cc : 1357] RAW: dying due to potential deadlock3d
能够看到谷歌的锁代码有自动检查死锁功能,很是强悍。get
std::mutex的锁直接死锁无任何提示。qt