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
。