文章吧-经典好文章在线阅读:《C++ Concurrency in Action》读后感精选10篇

当前的位置:文章吧 > 经典文章 > 读后感 >

《C++ Concurrency in Action》读后感精选10篇

2022-05-16 02:06:16 来源:文章吧 阅读:载入中…

《C++ Concurrency in Action》读后感精选10篇

  《C++ Concurrency in Action》是一本由Anthony Williams著作,Manning Publications出版的Paperback图书,本书定价:USD 69.99,页数:528,文章吧小编精心整理的一些读者的读后感,希望对大家能有帮助。

  《C++ Concurrency in Action》读后感(一):难得的一本C++多线程方面的好书

  《C++ Concurrency in Action》这本书要是按照中国出版社的风格,估计会翻译成《C++并发编程实战》,其作者本身就是多线程编程方面的专家,所以这本书的权威性毋庸置疑。

  本书的特点如下:

  1、作者所说的并发,在本书中实际体现为多线程;

  2、使用C++11的thread库进行讲解,具备可移植性;

  3、C++11在短时间内还不能普及,多数公司的历史遗留代码,还要靠Native API维护;

  4、本书内容很详尽,例子简洁而有代表性;

  5、作者将常见的引起死锁、非安全访问的原因进行了深度剖析;

  6、原子操作的可移植性能带来生产率上的飞跃;

  7、lock-free算法写的不错,很有参考价值;

  8、多线程程序设计的一些经验,很有价值。

  读完了大半,后面正在进行。。。

  《C++ Concurrency in Action》读后感(二):不可多得的好书,不止是并发

  英文原版是不可多得的好书,评分低是中文版翻译的渣。

  如果愿意花时间把原版硬啃下来,并且切实在代码上实践,辅以工业级库(比如boost,std,folly)的源码学习的话,真的能学到太多太多了。

  本书作者是大名鼎鼎的boost库并发的作者,呼应系列名《In Action》。全书围绕真实的编程场景深入浅出娓娓道来,从最基础的零件: thread, mutex, condition_variable, atomic等开始,围绕数据控制: 数据共享, syn, queue传递,进阶无锁编程(这是个大坑,需要理解cpu内存模型和缓存一致性协议etc)、内存池,最终一步一步搭建了自己的小并发库。甚至里面的一些代码可以直接照搬过来在生产环境下使用。相信仔细阅读并实战完之后对于底层的理解可以上几个台阶。

  零零碎碎差不多花了200小时,这200个小时,可以学会:

  1. mutex,condition_variable,atomic,thread_local等的用法和原理。线程&进程间通信和数据共享。

  2. atomic:学会了读汇编看原理(顺便读完了CSAPP 233333)、asm,理解内存序、编译器重排、cpu重排、针对x86的特殊之处等等。

  3. LockFreeStruct:各种LockFreeQueue的特点和应用场景,LockFreeHashMap等。

  4. 内存池:各种特殊内存池的特点和应用场景,ptmalloc、brk、mmap、内核中的内存池,slot算法等等。

  5. ThreadPool:线程池的原理,针对特定场景下的实现。

  总结来说,这本书不仅仅是C++是并发,而且是通往底层、更加深入理解cpu的入口。是一本不可多得的好书。

  《C++ Concurrency in Action》读后感(三):值得一读

  C++领域,多线程的书籍很少。毕竟多线程对于C++来说是属于语言之外的东西,linux上是pthread,windows上则由win32API或.net framework提供。0x标准(现在是11了)纳入了线程后,线程变为语言的一部分,这就是这本书要说的东西。

  内容是比较丰富,除了标准外,还有一些基本的多线程编程经验,比如过多的锁会引起缓存的反复reloading,一个类应该如何设计一个thread safe版本等等,甚至还拿了一章专门讲lock-free的设计。该说的都说了。标准方面,基本的概念讲的还是比较清楚的(包括一些基本的新语法比如右值引用),但是内存模型没有讲透,只是大概说了说基本的用法。不过这一块到现在GCC也没能支持,估计也有这方面的原因。

  用C++在非嵌入式领域编程的,可能都对C风格的东西比较头疼,指针满天飞;一个100行的struct定义,看了不知道是干嘛的,等等。新标准出来后,一个很大的好处是,线程的使用OO化了,更符合习惯了OO的人的口味,更重要的是,它可以和其他机制无缝的融合在一起,比如仿函(新标准里是std::function)。而不必每次都自己封装pthread或win32api的C函数了。而且它还是跨平台的(至少在主流平台)

  《C++ Concurrency in Action》读后感(四):还不错,只是书中的代码确实有一些问题。

  最新问题,chaper 6.2.3 find-grained queue,在wait_and_pop和push的同步上调用了condition variable,但是push方法因为notify的时候没有取得wait_and_pop方法的head-lock所以在特殊情况下会导致wait_and_pop方法永远等待下去。

  这里是问题的描述

  书中的各种技巧,特别是各种并发container需要小心仔细的研究,切勿直接拿来使用。

  《C++ Concurrency in Action》读后感(五):Concurrency不只是多线程

  作者, 同时也是boost::thread库的(前)作者, 实力碉堡, 你甚至可以在stackoverflow上看到他回答的问题.

  看到有书评说C++0x的concurrency的书, 但实际上没有C++0x的语言特性, 新的thread库也能work的很好. 甚至说跳出C++, 光memory model, lock-free, CPU cache line optimization就是编程语言通用的. 当然, 有了C++0x的语言特性, 新的thread库会更好用.

  那么整本书读起来怎么样呢? 作者有时真的不考虑读者感受, 一整段就一句话的情况也时有发生. 这种情况只能硬着头皮啃了. 作者对于结构的把握也让人点点点, 很少罗列一二三, 不是一整段文字, 就是直接深入细节, 必须习惯.

  已经提过, 本书的精华本别对应的是memory model(第五章), lock-free(第七章), CPU cache line optimiztion(第八章). 如果你吃透了这几章, 并能信手拈来码出来, 我觉得你才真正理解了concurrency, 而不只是多线程.

评价:

[匿名评论]登录注册

评论加载中……