摘要:pthread不一定能够保证线程安全性,特别是在开启编译器优化的情况下,某些编译器优化很可能破坏pthread的线程安全性。 由于不同的编译器可能有不同的优化技术,所以pthread的实现与编译器有很大的关系;即使是在同一个OS平台上,不同编译器对pthread的实现也可能不一致。 有专家写论文证明,C++的线程机制不能仅仅依靠一个库(例如pthread)来实现,而是必须在语言层面作出修改,否则很难真正写出正确的多线程程序。 最新的C++标准C++11,定义了C++语言的内存模型,解决了C++多线程实现的问题。 下面是一些链接,可供参考: http://blog.cs...
阅读全文
摘要:http://mosights.blog.163.com/blog/static/2236831512013722112531379/http://blog.csdn.net/xxywxlyygx/article/details/8868767
阅读全文
摘要:一直以来,我对“异常安全”这个概念都不是太理解,今天查阅了一些资料,终于弄清楚了它的意思。 “异常安全”并不是说不能抛出异常,更不是说“非常安全的意思”,而是说即使在抛出异常的时候(如果有异常的话),程序回退的过程是干净的。 “异常安全”分为三个级别: 1.基本级别:可能发生异常,但是彼时代码保证做了任何必要的清理工作; 2.事物级别:可能发生异常,但是彼时代码保证它对数据的任何修改都被回滚; 3.没有异常:不可能发生异常; 如果要编写“异常安全”的代码,必须做到上述3点中的一点。
阅读全文
摘要:转载自:http://trarck.googlecode.com/svn/trunk/article/C/%E9%9A%90%E8%97%8F%E4%BE%9D%E8%B5%96.txt隐藏依赖:即一个头文件依赖其它文件。例如:A.hstruct BS bs;...B.hstruct BS{....};在A.c中//这样会报错#include A.h #include B.h//先包含B.h就可以#include B.h#include A.h这样就叫"隐藏依赖"如果先包含A.h就可以发现隐藏依赖,所以各种规范都要求自身的头文件放在第一个,就能发现隐藏依赖。解决办法就是在A
阅读全文
摘要:http://www.chromium.org/developers/coding-style/cpp-dos-and-donts#TOC-When-you-CAN-inline-constructors-and-destructors.
阅读全文
摘要:原文链接:http://www.drdobbs.com/cpp/standard-c-programming-virtual-functions/184403747By Josée Lajoie and Stanley Lippman, September 01, 2000As we gain mastery of C++, it is natural to question the rules of thumb that helped us get by in the beginning. Lippman and Lajoie provide an excellent exampl
阅读全文