09 2019 档案
摘要:nginx中,将地址的最后一位取出来,用Instace变量标识,用来判断是否连接已经被释放成为过期时间 为什么指针地址最后一位一定是0呢? 这里的内存地址,一定是内存分配器分配出来的地址,如new 。最后一位不是0的当然也可以是有效的指针,但是那肯定不是new出来的 而所有的内存分配器在所有架构下分
阅读全文
摘要:在练习内存池时,发现需要重载new,可是这个重载只是重载了operator new,那么还有哪几种new呢,下面来记录一下 首先记录一个点,在类中重载operator new,默认就是静态成员函数,所以不能生命为虚函数,不能调用非静态成员变量 下面正文,c++有三种new 说的通俗点。1、new运算
阅读全文
摘要:Linux kernel里面从来就不缺少简洁,优雅和高效的代码 比如,通过限定写入的数据不能溢出和内存屏障实现在单线程写单线程读的情况下不使用锁。因为锁是使用在共享资源可能存在冲突的情况下。还用设置buffer缓冲区的大小为2的幂次方,以简化求模运算,这样求模运算就演变为 (fifo->in & (
阅读全文
摘要:今天刚接触angularjs,发现有些调用的方法找不到在哪里定义的,查了一下,是把接口注册成了服务调用的 html中ng开头的元素,都是angularjs的关键字,可以直接加载脚本 附一篇详细讲解注入的帖子 https://www.runoob.com/angularjs/angularjs-dep
阅读全文
摘要:注意B-树就是B树,-只是一个符号. 简介 B/B+树是为了磁盘或其它存储设备而设计的一种平衡多路查找树(相对于二叉,B树每个内节点有多个分支),与红黑树相比,在相同的的节点的情况下,一颗B/B+树的高度远远小于红黑树的高度(在下面B/B+树的性能分析中会提到).B/B+树上操作的时间通常由存取磁盘
阅读全文
摘要:devel 包主要是供开发用,至少包括以下2个东西: 有的还含有开发文档或演示代码。 以 glib 和 glib-devel 为例: 如果你安装基于 glib 开发的程序,只需要安装 glib 包就行了。 但是如果你要编译使用了 glib 的源代码,则需要安装 glib-devel。
阅读全文
摘要:看nginx代码时发现双链表使用的是这种方法,记录一下 给出一个实例来说明 struct father_t { int a; char *b; double c;}f;char *ptr = &(f.b);//而不是 ptr = f.b; 这里ptr是b的地址,而不是它指向的地址。 struct f
阅读全文
摘要:在linux系统中安装软件的其中一种:源码安装的方法是,先输入./configure,然后输入make,最后make install。或许有人留意到没有,这些软件的根目录中开始是没有Makefile的,在执行了./configure后会生成了很多奇怪名字的文件. configure是一个脚本,它能设
阅读全文
摘要:首先,递归锁是什么 首先,对于互斥锁,分为递归锁和非递归锁。 在不同的线程中调用已锁定的互斥锁,必然会导致死锁。 但是在同一个线程中,如果想要多次获得一个锁,只能使用递归锁 其次,递归锁是不被提倡的,用到递归锁说明这个代码设计是有问题的。 更好的做法是,提取出一个被两个个公有函数调用的私有函数,这个私有函数无需锁定mutex 尽量使用非递归锁,在程序逻辑有问题时,产生死锁暴露出问...
阅读全文
摘要:centos下下载工具为yum,对应的源在/etc/yum.repos.d/CentOS-Base.repo文件下,修改其URI中前面的网络地址即可
阅读全文
摘要:思想就是整个网段ping一遍,对于ping不通的,解析其失败的字符来判定 首先用到了字符串的截取
阅读全文