我有一个用C++编写的多线程应用程序。我正在使用互斥锁进行文件写入。我怀疑在执行该程序的某个地方,互斥体没有被释放。
所以我想知道是否有一种方法来检查互斥锁和释放文件,编程或其他方式。
我正在SuseLinux上运行代码,顺便说一句。
谢谢,检查互斥量版本
Q
检查互斥量版本
1
A
回答
8
欢迎来到调试多线程代码的美妙世界。没有灵丹妙药可以解决你的问题,但至少你应该使用成语来管理你的互斥。这意味着将互斥体封装在一个C++类中,该类声明该类的实例被创建时声明该互斥体,并在它(该类实例)被销毁时释放该互斥体。您也可以有利地记录索赔/版本,但请注意,这可能会引入计时错误和人为因素。
+2
Boost :: Threads库拥有一套非常好的便携式RAII互斥锁......可以帮助您避免因持续锁定造成的死锁。 – paxos1977 2009-12-10 20:54:36
相关问题
- 1. 递归或错误检查互斥?
- 2. 将非互斥变量重新编码为互斥变量
- 3. 在while循环检查中处理互斥变量
- 4. 检查SPSS中二元变量的相互排斥性
- 5. 互斥量保护宏
- 6. C Pthreads互斥量值?
- 7. erlang信号量(互斥)
- 8. volatile变量而不是互斥锁变量来检查改变的数据
- 9. 互斥量和信号量之差= 1?
- 10. BoundedSemaphore信号量vs标准互斥量
- 11. 如何衡量互斥量争用?
- 12. 测量互斥量或futex延迟
- 13. Java互斥
- 14. 互斥对象
- 15. 互斥问题
- 16. 使用互斥
- 17. 互斥理解
- 18. 使NSOperations互斥
- 19. 与互斥
- 20. 如何检测互斥情况
- 21. 检测陈旧的互斥体
- 22. 检查Pygame版本
- 23. 检查PEAR版本
- 24. 如何检查是否没有获取互斥锁?
- 25. Linux互斥锁检查程序是否已经在运行?
- 26. lldb如何检查互斥锁的主人?
- 27. 检查Windows安装程序互斥可用性
- 28. 相互排斥的可检查菜单项?
- 29. pthread_once_t变量是否需要互斥锁?
- 30. 条件变量和共享互斥
问题其实是另一回事,看似愚蠢。我没有在一些构造函数中初始化一个bool变量,假设默认情况下它会被初始化为false。 现在,如果你想知道我怎么会困惑是否是由于互斥或错误初始化;好吧,如果你看了代码,我想你会明白的。无论如何,谢谢你的答案。他们很有帮助。 – rabin 2009-12-13 23:34:58