你把对mutex类的引用随意传递,这明显会引起问题,它违反了任何一种封装。
为什么这是个问题?我应该传递值然后编写复制构造函数吗?
缺乏封装会带来什么危害?我应该如何封装?
还有,为什么将互斥锁类的引用传递给其他对象不是一个好的设计?
传递锁的引用是个坏主意——你不是“使用”锁,而是只获得然后归还。移动它会使跟踪(关键)资源的使用变得困难。传递互斥变量的引用而不是锁可能不是那么糟糕,但它仍然会使知道程序哪些部分可能会死锁变得更难,所以最好避免。
请用简单的语言和例子解释为什么传递引用是个坏主意?