上传者: ximenjiangjun
|
上传时间: 2021-01-12 19:59:15
|
文件大小: 2.13MB
|
文件类型: PDF
这本书主要是讲在使用C++11特性时对并发的深入探讨。 它是由作为语言新线程支持基础的Boost Thread 库的主要开发及维护人员编写的。总之,作者很有权威性。
该书从最基础的东西开始,假设读者已经有良好(甚至是非常好)的语言基础,但是首次接触并行代码。 该书逐步地探讨了一些由并发带来的问题,讲述了互斥的解决方案和局限性,以及它们是如何在C++11中实现的。接下来讲述了C++的内存模型和原子类型。最后,深入探讨了基于锁和无锁数据结构的设计。这是自从Herb Sutter在书中讨论这个话题之后,我所见过的最好的处理方法。
这本书很全面地涵盖了一些真正重要的话题,这些话题在其他书籍中是经常被忽略的,比如像,多线程的代码设计,线程应用程序的调试。当然,在我看来,这两者都描述得太少了。 书中大部分内容都是作为参考资料(就单独的C++线程库就有差不多130页)。 另一个附录是一个完整的消息框架,并给出了代码和注解。 毫无疑问,作者还是花费了很大的心思,相关的内容都讲到了。
对于这本书,我也有不满意之处,但是它们都微不足道。 第一个就是你必须深入了解C++,否则阅读起来比较困难。另一个就是作者最后一章讲述的线程池,用红色字体显示的”高级线程”。在我看来,线程池在并发处设定标记很有意思,但是很可惜,作者却在这儿停笔了。由此可得知,虽然作者在目录有提及到角色模型,但并没有进行讲解,就好像它压根儿不存在一样,可能在William看来,它其实对好几种语言至关重要,却不包括C++。
总的来说,这些不满意之处只能反应我的偏好,不能说明这本书有缺陷。William的这本书非常棒,至少在未来的很长一段时间里都能称得上是这个领域的典型著作。
如果你想更仔细地看下这本书的内容,我们最近在一篇很受欢迎的文章里”Waiting for One-Off Events with Futures。”有摘选了一些片段。