18
回答
我想说这本书挺烂的,不是我不支持,是真的太差。
终于搞明白,存储TCO原来是这样算的>>>   

<无详细内容>

举报
做个坏人
发帖于4年前 18回/3K+阅

以下是问题补充:

共有18个答案 最后回答: 5个月前

感谢大家的热烈讨论,看来大家都是高手,很多人水平也比我高,我做过多的评价也不合适,我自己也说了,这本“书”(如果你把它看做是书的话)现在还只是自己以前写的一系列介绍 C++11 多线程支持库和原子操作库的笔记,确实还不具备成为书的条件。

至于说究竟什么是并发编程, C++ 适不适合做并发编程,我也相信每个人都有他自己的理解,强行地把自己的观点灌输到别人身上是不对的。不过既然 C++03 标准没有语言级别的原子操作和多线程支持,但是在 C++11 中却加了这两项内容,如果某些小伙伴还坚持认为“C++ 和 并发 没有任何关系, 用C++做并发, 是最为愚蠢的一种行为.”,那这些小伙伴对 C++ 的理解是不是还停留在10年前呢,现在都 2013 年了,看看 WG21 N3242(虽然C++11正式标准巨贵,但是这个草案是免费的,一本 1134 页的大部头) 吧,看看 C++ 新标准的 memory model 吧,右值引用,lambda 表达式,正则式,智能指针,哪个不是激动人心的新特性。不知道喷 C++ 的小伙伴们对 C++11 又了解多少,如果对 C++11 新标准所知不多,真的建议去看看,不要看网上乱七八糟的转载小品文,而是直接看C++标准(草案)(可能又有人说我装B了,但至少我自己是看标准的,也建议小伙伴们都去看标准)。

也有人说我没有搞清并发是什么,我确实承认自己对并发理解得不深,某某同学说


并发控制是一种操作系统行为 并且, 所有的实现, 都是通过呼叫操作系统原语来实现
确实没错,语言(C++,Java,Erlang)层面的并发控制确实是调用的操作系统提供的并发原语(当然也有可能直接调用某些汇编指令),但操作系统的并发也是由 CPU 支持的。如果真的要说并发的属于哪个层次的,我想各个层次都有,但最终最底层的无非是 CPU 硬件层次的并发,操作系统只是帮你管理硬件资源的,这个大学教材里也是这么写的吧。所以,并发在各个层次都有,语言级别,操作系统级别,硬件级别,只是抽象层次不同而已,没有必要纠结并发只能处于哪个级别。想想你在用 C++ 写多线程程序的时候,会去直接操作 CPU 么,很明显不会,直接使用 std::thread、std::mutex(对,现在你可以直接使用 std 命名空间里面的 thread,mutex, condition_variable,哦还有 future 了(类似 Java)) 就行了,编译器和操作系统会帮你管理好的。因此,我所理解的并发不是非要处在某个特定层次的操作才叫并发。C++ 语言级别的并发只是提供了你一个抽象,让你不用去管底层是怎么实现的,Java 也是如此。


写了这么多,我也不想引起大家对某一门特定语言优劣的口水战,更不想发生任何语言上的人身攻击,技术嘛,适合自己的应用场景就好。

最后,我承认现在这本“书”(如果你把它看做是书的话)写的不好,毕竟才刚刚开始嘛,如果一开始就做得很好了我就直接去找出版社了,任何东西都是由不好到好的,中间的过程可能很痛苦很漫长,后面我会持续更新“书”(如果你把它看做是书的话)中的内容的,欢迎小伙伴们挑毛病提问题,但是。。。和谐社会,口水战可以有,但是不要有人身攻击 ;-)

两个凡是说:

你说对了

它方向错了

C++ 和 并发 没有任何关系, 用C++做并发, 是最为愚蠢的一种行为.

--- 共有 8 条评论 ---
宏哥回复 @newzai :在内存操作, 系统呼叫这个级别,功能完全等价。 4年前 回复
newzai回复 @宏哥 : 何为接近,接近多少了。。中国人最喜欢差不多了。。就想中国人口差不多有13亿,省略掉的都人口都是好几个小国家的人口了。。只要不是完全想等那就是有区别的。。。。 4年前 回复
宏哥回复 @newzai : C语言在接近底层方面和汇编是同级别的。没有必要汇编。 4年前 回复
newzai回复 @宏哥 : 用汇编,更准确。。C和C++都是编译成目标代码,他们只是走2条不同的路,到达相同的目的地而已的区别。 4年前 回复
宏哥回复 @newzai : 操作系统原语呼叫时通过内存地址和指令实现。 C来表达是最准确的。 4年前 回复

引用来自“宏哥”的答案

两个凡是说:

你说对了

它方向错了

C++ 和 并发 没有任何关系, 用C++做并发, 是最为愚蠢的一种行为.

这个……我也不太清楚,我主要从书这个方面说。你是从专业知识方面!

引用来自“王瑞平”的答案

做手纸太硬

没有纸,哈哈。。没看过,不做评价。

C++太深太广,每个人都有自己的经验技巧和看法

引用来自“做个坏人”的答案

引用来自“宏哥”的答案

两个凡是说:

你说对了

它方向错了

C++ 和 并发 没有任何关系, 用C++做并发, 是最为愚蠢的一种行为.

这个……我也不太清楚,我主要从书这个方面说。你是从专业知识方面!

作者根本搞不清楚

并发控制是一种操作系统行为

并且, 所有的实现, 都是通过呼叫操作系统原语来实现

莫名其妙搞出一个C++来, 牛头不对马嘴

顶部