为什么在实践中我应该更喜欢一个或另一个?std::thread除了是一个类之外,还有什么技术差异?
std::thread
如果您想在许多平台上运行代码,请选择 Posix Threads。它们几乎随处可见,并且非常成熟。另一方面,如果您只使用 Linux/gccstd::thread则完全没问题——它具有更高的抽象级别、非常好的接口并且可以与其他 C++11 类很好地配合使用。
std::thread不幸的是,即使 C11 似乎可用,C11类也不能(还)在每个平台上可靠地工作。例如,在原生 Androidstd::thread或 Win64 中,它只是无法正常工作或存在严重的性能瓶颈(截至 2012 年)。
一个很好的替代品是boost::thread- 它与(实际上它来自同一作者)非常相似std::thread并且工作可靠,但是,当然,它引入了来自第三方库的另一个依赖项。
boost::thread
编辑:截至 2017 年,std::thread主要适用于原生 Android。一些类,如std::timed_mutex仍未实现。
std::timed_mutex