muduo源码中TcpClient析构函数是不是有问题

没有问题,陈硕先生的书上所说的“作为数据成员的mutex不能保护析构”,指的是作为类成员的mutex不能保护整个析构过程,因为1、它要和被析构的类一起析构掉,2、当类是基类的时候它保护不了派生类部分的析构。于是,不要惹到这两个原因,也不要妄图去做那一件做不到的事就好了。在题目中代码里的mutex只用于保护析构函数体中的一小段代码,整个析构过程,特别是对类成员的实际析构不依赖mutex保护。与派生类部分也无关。所以这么用mutex是没问题的。


    推荐阅读