学鬼

2017年3月3日

STL空间配置器、vector、list、deque、map复习

摘要: STL的六大组件:容器、算法、迭代器、空间配置器、容器适配器、仿函数。 空间配置器 空间配置器产生的缘由:由于程序需求,很多小块内存在程序中动态申请、释放。于是就容易出现内存外部碎片问题,同时由于一直调用malloc系统调用,产生性能问题。 (注:内碎片:因为内存对齐/访问效率而差生如用户需要3字节 阅读全文

posted @ 2017-03-03 19:05 学鬼 阅读(472) 评论(0) 推荐(0) 编辑

2017年2月27日

多线程和多进程的区别

摘要: Linux内核实际上是不区分进程和线程的,它们都是用的task_struct结构体,Linux上的线程是LWP,即轻量级进程。创建进程的fork()函数和创建线程的clone()函数内核底层都调用了do_fork()函数。对于线程来说,使用了CLONE_VM(共享内存空间)、CLONE_FS(共享文 阅读全文

posted @ 2017-02-27 12:28 学鬼 阅读(301) 评论(0) 推荐(0) 编辑

2017年2月26日

select、poll、epoll的区别

摘要: select、poll、epoll三组系统调用都能同时监听多个文件描述符,它们将等待由timeout参数指定的超时时间,直到一个或多个文件描述符上有事件时返回,返回值是就绪的文件描述符的数量。返回0表示没有事件发生。 下面从事件集、最大支持文件描述符数、工作模式和具体实现等四个方面进一步比较它们的异 阅读全文

posted @ 2017-02-26 15:25 学鬼 阅读(260) 评论(0) 推荐(0) 编辑

2017年2月24日

C++对象模型复习

摘要: 一:对象模型 C++面向对象的实现,相对于C耗费成本是由virutal引起的。包括 virtual function机制,用来支持执行期绑定。 virutal base class 虚基类机制,以实现共享虚基类的subobject 此外还有多重继承下,发生在其第二或后继派生类之间的转换。 C++对象 阅读全文

posted @ 2017-02-24 23:18 学鬼 阅读(158) 评论(0) 推荐(0) 编辑

导航