2
A
回答
4
是的。互斥体是线程之间共享的进程资源。只要确保另一个线程在被销毁或之后无法访问该互斥体。
这是一种非常常见的模式,用一个互斥体构造一个对象,然后在对象被销毁时破坏该互斥体。如果你必须确保同一个线程销毁它创建的互斥锁,这将是非常令人不快的 - 该线程可能不再存在。如果它是一个共享互斥进程,则创建它的进程可能不再存在。
相关问题
- 1. 互斥锁和锁
- 2. 如何初始化互斥锁和条件变量
- 3. 如何锁定初始化程序列表中的互斥锁?
- 4. 递归和非递归锁(互斥锁)
- 5. 互斥锁/解锁命令
- 6. C# - 锁定互斥锁问题
- 7. C - 互斥锁属性
- 8. C++:自旋锁或互斥对比(简单计算)
- 9. 实现互斥锁?
- 10. 打印电弧和互斥锁类型
- 11. 信号量和互斥锁定概念
- 12. 锁定和同步使用互斥
- 13. 动态分配和销毁互斥锁?
- 14. 互斥体未初始化
- 15. 互斥初始化 - (UNIX)
- 16. 锁定互斥锁vs访问磁盘
- 17. 从头开始实施互斥锁
- 18. 在使用互斥锁和等待数据时出现死锁
- 19. c C中的互斥锁替换
- 20. 互斥锁的顺序
- 21. 需要释放互斥锁?
- 22. 永久互斥锁造成死锁?
- 23. 锁定互斥锁的分段错误
- 24. 函数可以锁定互斥锁吗?
- 25. 成功的互斥锁锁定
- 26. 不锁定pthread_cond_timedwait和pthread_cond_signal的互斥锁(在Linux上)
- 27. 锁定层次结构和读写器互斥锁
- 28. 锁,监视器,互斥
- 29. 什么时候应该使用自旋锁而不是互斥锁?
- 30. 互斥锁无数次
谢谢大卫。如果我想让互斥体成为每个对象,它可以成为类的一部分吗?如果是这样,我应该将其定义为常规数据记忆器吗? 例如 - \t pthread_mutex_t \t m_spinlock; – user1035931 2013-03-21 10:49:58
是的,你可以做到这一点。只是不要试图用这个互斥体来保护这个类的破坏。通常,这样一个对象将存在于一个本身受互斥体保护的集合中。将对象添加到集合中或从集合中删除以销毁将在该外部互斥锁的保护下完成。您也可以使用智能指针。 – 2013-03-21 11:04:53