2013年8月2日

关于多线程同步的一点总结

摘要: 这两天看了下 MoreWindows 《秒杀多线程》系列的博客,稍微总结一下,就当笔记了。http://blog.csdn.net/column/details/killthreadseries.html1. CreateThread()与_beginthreadex()的区别 _beginthreadex在创建线程前(即调用CreateThread()前),先申请了一个用于存放线程私有数据的_tidata 类型成员.2. Interlocked系列函数 * LONG __cdecl InterlockedIncrement(LONG volatile* Addend); 相当++Addend 阅读全文

posted @ 2013-08-02 01:10 DoubleZ 阅读(188) 评论(0) 推荐(0)

2013年7月31日

C++面试题知识点记录

摘要: 这几天打算看下《剑指offer》这本书,相关知识要点记录下。1. 空类型大小一个空类型实例大小为1字节,由编译器确定。增加普通成员函数至于类型并不会增加类型实例的大小,增加需函数则会多出虚表的指针。下面写下自己的理解,感觉书中的解释模糊带有误导性。为什么普通成员函数就不会增加类型实例大小,是因为普通成员函数是在编译期进行对函数调用进行地址替换。为什么需要虚表,因为虚函数调用是运行期动态决定的,所以必须每个实例需要包含虚表。2.复制构造函数必须以引用传参,不然会递归死循环。3. Type Array[10]; 虽然Array本质上是指针,但是代表的其实是声明时的整个数组,所以与指针类型有所区别, 阅读全文

posted @ 2013-07-31 11:13 DoubleZ 阅读(211) 评论(0) 推荐(0)

2013年7月28日

记录几点C++11特性的简单随笔

摘要: 今天看到一篇关于C++11的一些新的标准特性文章,虽然还没有环境,但是先随手记下。1. auto关键字 这个关键字所声明的变量可以被赋值多种类型,应该说近乎所有类型,包括了STL容器的iterator类型等。 有点类似与Lua和Python的变量,但是不同的是,脚本的变量是不需要手动声明的。例子:auto i = 42; // i is an int auto l = 42LL; // l is an long long auto p = new foo(); // p is a foo*std::map> map; for(auto it = begin(map)... 阅读全文

posted @ 2013-07-28 12:59 DoubleZ 阅读(196) 评论(0) 推荐(0)

导航