我正在寻找一些用 C++ 编写的易于使用的跨平台线程库。
您对 boost::thread
或 Pthreads
有何看法?
Pthread 是否仅在符合 POSIX 的系统上运行?
Qt
库中的线程支持怎么样?
最佳答案
Boost.Thread 是即将到来的 C++ 语言标准线程库的草案。知道这一点,我更喜欢使用它,因为它提供了一些强有力的保证(因为它已成为标准)。
更新:现在我们有了标准线程库,精度更高了。一些 boost 构造,例如 boost::shared_mutex,尚未标准化(但可能会在以后标准化)。然而,标准库更好地利用了移动语义。在选择图书馆之前很高兴知道。此外,使用 C++11 线程库需要提供它的编译器。今天并非所有编译器都是如此。
更新: 现在 [Nov2012] 大多数标准编译器都提供 C++11 线程库。 VS2012、GCC4.8 和 Clang3.1 支持线程和同步原语以及原子操作。 对于完整的实现,您还可以使用 Anthony Williams 的 just thread。它是 Windows/Mac 和 Linux 上支持的 C++11 兼容库。
各种编译器的 C++11 功能状态链接:
关于c++ - C++ 中是否有任何跨平台线程库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2561471/