C++ 标准库提供std::mutex (lock, unlock, try_lock)了可以在多线程环境中工作的功能。
此外,我还听说过有关Boost::mutex提供相同功能的包装库(例如)的讨论(例如lock, unlock, try_lock)。
我的问题是,使用这样的包装库比标准的有什么优势?
C++ 标准库提供std::mutex (lock, unlock, try_lock)了可以在多线程环境中工作的功能。
此外,我还听说过有关Boost::mutex提供相同功能的包装库(例如)的讨论(例如lock, unlock, try_lock)。
我的问题是,使用这样的包装库比标准的有什么优势?
std::mutex,std::thread而线程库的其他元素仅在 C++11 中可用。boost::mutex等人早于 C++11。所以优点是如果你没有 C++11 支持,你可以使用它们。
虽然 juanchopanza 指出了对问题 (+1) 的最直接答案,但在它们包装的类型上std::mutex 引入的一件事是使用异常。对于大多数人/环境/需求来说,这将被认为是一件好事。在某些情况下,您可能不需要异常依赖。在那种情况/环境下,std::mutex接口可能不是一个选项或不可取的。
一些包装器,如 TBB 和 PPL,提供比标准库更多的功能。
malloc.std::thread= malloc/ free。std::vector/ std::unique_ptr。