根据C++标准,这两段代码都有问题: 首先,一个线程多次lock同一个mutex会导致undefined behavior。 然后,一个mutex析构的时候,如果还有线程持有它,也可能导致undefined behavior。