腾讯teg挂了之后昨天又被其他部门捞起来了,面了20分钟左右,前面基本畅通无阻,但是问到如何检测内存泄漏的时候懵比了…………卒 介绍一个比较实用的工具 Valgrind,英文海星的朋友可以点这个 链接。一个新手教程。 Valgrind它在实质上还是一个debug工具集合,而其中最受欢迎就是 memcheck,用于检测内存泄漏。 其所有检测内容包括(个人总结 内存泄漏 使用未初始化的内存 内存越界 读写已经释放的内存 重复释放 内存泄漏 valgrind默认使用 memcheck参数来检查内存泄漏。所以一般只要…

关于线程池是很早就想去看的,在github上找了star最多的C++ 11 版本,然而一下子看不懂,就搁置在那了。 因为昨天百度面试问到了,我甚至回答我看过但是没看完,有点尴尬,今天花了点时间学了一下基础,并对源码进行了注解。 github 地址 先说一下我现在对上面这个线程池实现原理的理解。 理解之后可以说是很简单了,这个线程池本质上是互斥和条件变量的妙用。 我先开一个事件队列,再开几个线程,首先这些线程在整体上都是死循环,但会在事件队列为空的时候进入睡眠状态(由条件变量控制)。当事件队列非空,那么我就从事件队列中取出一个事件,再将这个事件搭载在线程上运行。事件运行结束后这个线程进入下一个循环,…

前几天因为一直在看IPC(进程间通信),有几个问题去搜的时候无意中发现这些IPC方法其实以及不大常用了,最最常用的还是socket…… 我是一直以为socket只会在网络上使用较多,其他不大会使用,现在发现我可能真的错了,于是打算把学IPC的精力放在巩固和加深socket上,其他IPC只做大概了解。 最基础的 TCP 套接字编程 暂时只贴注释代码 Server /* *********************************************************************** > File Name: k_server.cpp > Author: Key > Mail:…

瞎看了一点博客自认为搞懂,现在没什么时间写代码,写简单记下来。 shared_ptr的是一种“引用计数型智慧指针”(RCSP),它最核心的本质在于引用计数。 并且这个引用计数器也是一个类指针。 除开这个引用计数器以外,自然还有本重要的指针了,除此之外就没有其他的成员变量。 shared_ptr与uniqe_ptr的重要区别在于,unique_ptr只能指向一个对象,这是由它的析构函数决定的,因为析构函数必定会释放掉指针所指的内存,如果指向多个,将会多次释放,引起错误。 因此,unique_ptr的构造是不允许nullptr的。…

本人开学后花了三天终于在昨天3.10(也是本人的阳历生日)完成了红黑树的实现 自认为没有bug…… 不过感觉接口设计上不是很好,觉得得学习一下stl 源码在github上,点这里 上面那个是看思路自己意淫出来的,这里有个模仿STL的版本 但是没有改好。。还有几个error…… 除此之外,特别想说一个知识点,就是在模板实现上,其声明和定义是不能卸载两个文件里的,因为在编译的时候,编译器就必须知道类的大小(好吧,其实我也解释不大来…… 非要写在两个文件里的话,我只知道特化,当然,这不是很可取。…