开始时间:2010-10-19
结束时间:2010-12-12
阅读方式:精读,除附录部分关于非WIN32系统外的API部分。
图书介质:扫描PDF
读后感
用了将近2个月的时间读完了《C++面向对象多线程编程》这本书。市面上系统的介绍多线程技术的书并不是很多。当初选择了这本书来读很大层面上是因为译者序言中的好评,尤其是“书中精辟之处令译者爱不释手甚至忘记了翻译工作”的描述给我留下了深刻的印象。
这本书的主要内容我觉得可以大致分为三个部分,虽然三个部分并无明显的分界而是互相杂糅。第一部分是关于C++面向对象技术的特点以及如何应用于多线程编程的介绍;第二部分是多线程使用C++面向对象技术实现的具体方式;第三部分是POSIX、Win32、OS/2三个操作系统中提供的多线程操作相关API的介绍。
本书的特点是非常鲜明的。首先,它不拘泥于介绍多线程编程本身,而是将所有与多线程实现相关的C++面向对象知识进行详细的介绍。比如它提到异常处理,就会详细介绍异常处理的机制;提到STL就会将STL的结构做较为深入的剖析。所以,在看这本书时,很多时候像是在读一本带有超链接的电子书,将相关知识点漫游式的一一浏览。而且这种介绍有不仅仅是照搬经典定义或教科书,而是充分融入了作者的思想,并且紧密结合了多线程技术的实现。阅读后我对C++语言结构与各种机制的理解有了更深的认识,受益匪浅。
其次,是关于书的主体部分——利用C++面向对象技术具体实现多线程的精辟实现。作者剥茧抽丝般逐层封装、继承,最终提供了一套完整的多线程实现方案。当看到最后的代码时,我不得不为之一动。因为这绝不仅仅是一个总结或者一种诠释,更是一件不可多得的艺术品,令我叹为观止。
最后,是这本书中所使用的示例代码。作者在书中穿插使用了POSIX、Win32、OS/2三种不同的操作系统下的API来对具体实现进行诠释。并且在随书光盘中提供了书中示例的三种版本的全部源码。在书中作者经常枚举三种API的同种功能语句并进行对比,大大拓展了我的思路。我在读这本书时逐渐将“找到一种解决实际问题的方法”的心态转变为“掌握一种解决一类问题的思路和方法”。
其他方面要提到的是这本书的翻译工作做得十分到位,错字、错句也很少。只是在300-350页间出现错误略为频繁,但总体来说还是非常不错的。
至于缺点,这本书的附录部分收录了POSIX、Win32、OS/2三种操作系统关于多线程操作的API,用了150余页。对于一本500页的书来说,确实多了些。另外,这种“超链接”式的风格,对于不需要重温C++面向对象技术,只想快速找到解决实际问题架构的读者来说显然有些冗余。除此之外,就没有什么缺点了。
总体来讲,这是一本不可多得的好书,很多内容值得二次阅读,细细玩味。