摘要: 散列表的英文名叫"HASH TABLE",也叫哈希表或者HASH表。 散列表用的是数组支持按照下标随机访问的特点,其实就是一种数组的扩展,没有数据就没有散列表 例子: 比如说学校里面的每个学生都有编号,然后有89名学生去参加运动会,我们现在要做一个通过编号迅速找到学生信息,编号是这样的061101, 阅读全文
posted @ 2019-05-27 16:38 小二郎** 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 数组需要一块连续的内存用来存储数据,而链表恰恰相反,它并不需要一块连续的内存,它通过指针将不连续的内存块串起来。 链表结构很多,我们说下最常见的,单链表,双向链表和循环链表。 我们先看比较简单的单链表 如上图可以看出来,图中的每个节点不仅需要存储数据,还需要记录一个指向下一个节点的指针,如图所示,我 阅读全文
posted @ 2019-05-27 15:49 小二郎** 阅读(479) 评论(0) 推荐(0) 编辑
摘要: 5个基本线程函数 pthread_create函数 当一个程序启动时,这个时候主线程也叫初始线程就创建了。其余线程则有pthread_create函数创建。 #include <pthread.h> int pthread_create(pthread_t *tid, const pthread_a 阅读全文
posted @ 2019-05-25 14:52 小二郎** 阅读(933) 评论(0) 推荐(0) 编辑
摘要: 1.union执行过程 首先我们创建一个表t1 然后我们执行一下这条语句 首先说下union的语义,union的语义是取两个结果的并集,重复的保留一行,然后我们来看下explain的结果,第二行的key=PRIMARY,说明用到了主键索引。 第三行的Extra的Using temporary说明用到 阅读全文
posted @ 2019-05-24 12:15 小二郎** 阅读(4028) 评论(1) 推荐(0) 编辑
摘要: 1.TCP迭代服务器程序 这种方式就是服务器同一时间只处理一个客户端的请求,这个请求处理完以后才转向下一个客户请求。当然这样的服务器程序比较少见,这就像一个公司只能一次处理一个客户,后面的客户只能等待,这样的话肯定是不行的,效率太低 了,但是要是从进程控制角度来看这种方式是最快的,因为它没有执行进程 阅读全文
posted @ 2019-05-23 01:48 小二郎** 阅读(544) 评论(0) 推荐(0) 编辑
摘要: 上一节已经用编译的方式搭建好了一个nginx,链接在下面 https://www.toutiao.com/i6693130510777975300/ 然后这次我们把上次搭建好的nginx作为反向代理的上游服务器,这里我把listen改成了 127.0.0.1:80表示这台nginx只能被本机访问 下 阅读全文
posted @ 2019-05-22 11:02 小二郎** 阅读(1449) 评论(0) 推荐(0) 编辑
摘要: 我们先说下定义,比如说我们要在a字符串中查找字符串b,那么a就是主串,b就是模式串 我们把主串的长度记为n,把模式串的长度记为m,n>m BF(Brute Force)中文名:暴力匹配算法,朴素匹配算法 简单的说BF的算法就是在主串中查找起始位置是0,1,2,,,n-m个且长度为m的n-m+1个子串 阅读全文
posted @ 2019-05-21 11:16 小二郎** 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 在centos下有两种安装nginx方式,一种是yum install这种方式,还有一种是编译安装,当然第一种方式更简单,但是有一定的缺点,比如说我们需要使用特定的第三方模块,这个时候就需要用编译安装这种方式了。 步骤1 下载nginx wget http://nginx.org/download/ 阅读全文
posted @ 2019-05-20 23:39 小二郎** 阅读(1549) 评论(0) 推荐(0) 编辑
摘要: 假设我们要查询一个市民表中城市=杭州的所有人的名字,并且按照名字排序 那么sql语句可以这样写 接下来我们看下explain的结果 图中的Extra这一列下面的Using filesort表示需要排序,MySQL会为每个连接分配一块内存用于排序,就是sort_buffer,sort_buffer_s 阅读全文
posted @ 2019-05-20 16:14 小二郎** 阅读(923) 评论(0) 推荐(1) 编辑
摘要: 内核的启动时从main.c这个文件里面的start_kernel函数开始的,这个文件在linux源码里面的init文件夹下面 下面我们来看看这个函数 这个函数很长,可以看个大概过去 这个函数里面我们会看到有很多的各种init,也就是初始化,我们只说几个重点操作 首先来看下这个函数set_task_s 阅读全文
posted @ 2019-05-20 12:01 小二郎** 阅读(2689) 评论(0) 推荐(1) 编辑