Google C++编码风格不建议使用C++异常,我们也不使用。对于大多数STL库容器,我们可以忽略异常,因为通常它们表示严重错误,并且很难处理,因此崩溃是可以接受的。
但是,多线程(std::thread)存在一个问题,例如两次输入非递归互斥锁会引发异常。这种情况并不严重,可以通过等待来处理。
我的问题是:是否有人知道Google正在使用什么作为线程库?是否有任何不使用异常的C++跨平台线程库?
谢谢
Google C++编码风格不建议使用C++异常,我们也不使用。对于大多数STL库容器,我们可以忽略异常,因为通常它们表示严重错误,并且很难处理,因此崩溃是可以接受的。
但是,多线程(std::thread)存在一个问题,例如两次输入非递归互斥锁会引发异常。这种情况并不严重,可以通过等待来处理。
我的问题是:是否有人知道Google正在使用什么作为线程库?是否有任何不使用异常的C++跨平台线程库?
谢谢
Google的样式指南实践可以追溯到上个世纪90年代初,当时线程是相当陌生的。因此,想知道这种风格和线程如何混合没有意义。如果您使用21世纪的“现代”技术(例如线程),则不使用Google的样式指南,反之亦然。
std::mutex
锁的情况下再次进入该锁是不被定义的行为——最好的情况是你可能会得到一个异常。最糟糕的情况下,你可能会陷入死锁。在这里发生的异常可以归类为关键错误。 - Cory Nelson