检查互斥锁版本

rab*_*bin 1 c++ linux multithreading mutex file

我有一个用C++编写的多线程应用程序.我正在使用互斥锁进行文件写入.我怀疑在执行程序的某个地方,互斥锁没有被释放.
所以我想知道是否有办法以编程或其他方式检查文件上的互斥锁和释放.
我在SuseLinux上运行代码,顺便说一句.
谢谢,

小智 8

欢迎来到调试多线程代码的精彩世界.没有灵丹妙药来解决你的问题,但至少你应该使用RAII习语来管理你的互斥体.这意味着将互斥锁包装在C++类中,该类在创建类的实例时声明互斥锁,并在它(类实例)被销毁时释放它.您还可以有利地记录索赔/发布,但请注意,这可能会引入计时错误和人工制品.

  • Boost :: Threads库有一套非常好的便携式RAII互斥体......可以避免因延迟锁定而导致的死锁. (2认同)