【发布时间】:2012-12-22 06:35:51
【问题描述】:
经过大量的搜索和一些尝试和失败,我总结了一些事情,这就是结果:
- C++ 11 线程模型尚未准备好用于 GCC(基于 g++ 4.7)或 Clang(来自最新的 svn rev.)-(目前最先进的 2 个编译器)-Clang 甚至没有一个完整的 libcxx 库,它仅适用于 Mac OS。
- C++ 11 下的标准线程库非常基础,例如,互斥锁不提供高级功能,例如
boost::thread提供的“基于范围的锁(适用于 RAII)” -
boost::thread可以被认为是 Posix 线程库的一个包装器,或者如果你愿意的话,是一种进化,所以实际上线程库并没有真正的选择,它们并没有那么不同,它们更像是上一个。
现在我在问,如果是这种情况,我应该从哪里开始?
例如this book,它显然面向 C++11 标准线程库,它为您提供了基础知识,但您可能永远不会在现实生活中使用它,因为 C++11 线程支持仍然不支持在最流行的编译器中很好,但在功能方面确实很差。
我认为公平地说,从boost::thread 开始,这是当今世界的一个不错的选择——如果我错了,请纠正我——而且它也是多平台支持和旧版支持的唯一真正选择C++ 03:我的问题是,我真的找不到一本关于并发和多线程的书或参考书看起来恰到好处,或者对于boost:thread 来说已经足够了。
你能推荐一本从并发和boost::thread开始的书吗?
【问题讨论】:
-
对于基于作用域的锁定,C++11中有
std::lock_guard。 -
@jogojapan 啊!奇怪的命名空间组织...顺便感谢您的提示。
-
请记住,C++ Concurrency in Action 一书的作者 Anthony Williams 编写了 boost 线程库,以尽可能接近 C++11提案(他也参与其中)。 C++11 线程和 boost 线程非常相似。你仍然会从那本书中学到很多东西。
-
@SeanCline 问题是它们有多大不同,问题是对 C++ 11 的支持水平可能会在 1 年后非常好,而我从今天开始。
标签: c++ concurrency c++11 pthreads boost-thread