10 yexz

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 6w+

nginx学习——建立hash表的前提条件

在前面两篇博文中分别介绍了nginx中普通hash表和带有通配符的hash表的建立和查找。今天主要是介绍建立普通hash表和带通配符hash表的前提条件:哈希key数组的初始化以及key-value对的添加。

2016-08-31 22:59:27

nginx学习——从基本hash表到支持通配符的hash表(下)

在上一篇博文介绍了nginx中基本hash表的实现,今天主要是来介绍nginx是如何实现支持通配符的hash表。话说在看支持通配符的hash表源码时我惊奇地发现它的设计思路居然和我之前设计的中文字典树基本一致,觉得nginx的设计也不过如此,但是看完hash表源码后我才发现我还是too young too simple,nginx的hash表考虑到的问题我想的要多得多!

2016-08-29 23:55:20

nginx学习——从基本hash表到支持通配符的hash表(上)

hash表示典型的空间换时间的数据结构,对元素进行查找、插入速度的时间复杂度为O(1),这种高效地方式非常适合频繁读取、插入、删除元素,在nginx服务器中,hash表也得到了广泛应用。在nginx基本hash表中,关键字一般是字符串(URL域名),但是如果要让hash表支持统配符,比如”*.test.com“,就需要用到nginx中特有的支持通配符的hash表。

2016-08-28 23:09:32

nginx学习——nginx中的内存池技术(与STL内存池对比分析)

所有的内存池都有一个共同的特点,那就是一开始就将申请大块内存,避免重复申请释放小区块造成内存碎片。nginx也不例外,我们来看看nginx是怎样管理内存吧!

2016-08-27 23:00:19

每日一练——两个单链表相交的一系列问题

题意描述:单链表可能有环,也可能无环。给定两个单链表的头节点head1和head2,这两个链表可能相交,也可能不相交。请实现一个函数,如果两个链表相交,请返回相交的第一个节点;如果不相交,返回null。要求:如果链表1的长度为N,链表2的长度为M,时间复杂度请达到O(N+M),额外空间复杂度请达到O(1)。

2016-08-25 22:54:44

linux基础——linux下多路IO复用接口之select/poll

函数select和poll用于IO复用,它们都是监视一个或多个文件描述符集合,可以进行IO操作的时候就返回。一、函数select()select允许内核等待多个事件中的任何一个发生,并且只要有一个或多个事件发生或者经历了一段指定的时间后才唤醒它。函数原形如下:#include #include #include #include int select(

2016-08-23 23:51:56

STL学习——STL中的内存池管理技术

当我们new一个对象时,实际做了两件事情:(1)使用malloc申请了一块内存。(2)执行构造函数。

2016-08-18 23:08:53

计算机网络——TCP协议中的三次握手四次挥手以及11种状态转换

TCP的传输连接分为3个阶段:连接建立(三次握手)、数据传送和连接释放(四次挥手)。TCP传输连接的管理就是使传输连接的建立和释放都能正常地进行。

2016-08-14 20:37:19

linux基础——linux下五种IO模型小结(阻塞IO、非阻塞IO、IO复用、信号驱动式IO、异步IO)

一、阻塞IO模型 (同步I/O)阻塞IO是指进程进行IO操作的时候,因为数据没准备好或者缓冲区里没有空间而无法进行IO操作会进入睡眠,直到数据准备或者缓冲区有空间才回被唤醒的行为。阻塞IO是最通用的IO类型,所有套接字默认情况下都是阻塞的。输入操作:read、readv、recv、recvfrom和recvmsg,调用这些输入函数之一,如果缓冲区没有数据可读,该进程会投入睡眠,直到

2016-08-13 19:50:32

每日一练——用两个栈实现队列&用两个队列实现栈

题目一由两个栈组成的队列【题目】编写一个类,用两个栈实现队列,支持队列的基本操作(push、pop、front)。注意点:1、如果stack_push要往stack_pop中压入数据,必须一次性把stack_push中的数据全部压入。2、如果stack_pop不为空,stack_push绝对不能向stack_pop中压入数据。templateclass queue{

2016-08-10 22:52:41

数据结构——从英文字典树到中文字典树

昨天面试电话中的一道题,题目如下:给你一个姓名的集合,查找你的名字是否在里面出现,比如搜索姓氏为叶的人,那么会出现所有姓为叶的人,应该如何设计?当时的回答是,姓为key,名为value,存放到multimap中,使用multimap中的count函数统计key为叶的个数,然后用find函数找到第一个key为叶的指针,使用迭代器从该指针向后查找count个元素,判断这count个元素中是否有姓名

2016-08-09 23:08:09

设计模式——单例模式(Singleton Pattern)实现

什么是单例模式?单例模式(Singleton Parttern)保证一个类仅有一个实例,并提供一个访问它的全局访问点。类似于全局变量,但是效果比全局变量更优,全局变量必须在程序开始就创建,如果后面没有用到,会造成资源的浪费。

2016-08-07 23:01:26

每日一练——大数加减乘除运算实现(网易笔试题)

前几天做网易笔试题时最后一道题是设计一个大数类,实现加减运算,因为做这道题时只有5分钟,结果我刚把类写出来,考试时间就结束了。其实在去年12月我写过一个RSA的加解密程序,其中就用到了大数的加减乘除运算(当然这只是RSA用到的一小部分),后面顺便附上面试时经常会让手写的加、减、乘代码。

2016-08-06 23:05:53

STL学习——STL中的关联式容器总结(RB-tree、set、map、hashtable、hash_set、hash_map)

所谓关联式容器,观念上类似于关联式数据库:每个元素都有一个键值(key)和一个实值(value)。当元素被插入到关联式容器中时,容器内部结构便依照其键值大小,以某种特定规则将这个元素放置到适当位置。关联式容器没有所谓的头尾(只有最大或最小元素),所以不会有所谓push_back()、push_front()等操作行为。

2016-08-05 22:56:16

STL学习——STL中的序列式容器及适配器总结(vector、list、deque、stack、queue)

所谓序列式容器、其中的元素都可序,但未必有序。STL提供了vector,list,deque,stack,queue,priority-queue等等序列式容器。其中stack和queue由于只是将deque改头换面,技术上被归类为一种配接器(adapter),以下总结了序列式容器。

2016-08-04 22:56:29

每日一练——求一个只包含0、1的矩阵中只包含1的最大子矩阵大小

题目描述:给定一个无序矩阵,其中只有1和0两种值,求只含有1的最大正方形的大小。例如给定如下矩阵:1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0Return 4int max_square(vector>& matrix) { int row = matrix.size(); int col = matrix[0

2016-08-03 22:56:20

每日一练——轮询调度算法和短作业优先调度算法的平均等待时间

今天做亚信的笔试题遇到的轮询调度算法,和春招做的百度笔试题短作业优先调度算法很相似,但是难度要UPUP。做题的过程中,因为没有正确地处理迭代器失效的问题浪费了好多时间(>﹏轮询调度算法如果一个系统可以在单个CPU上运行多个并发作业,那么就该系统而言,“调度”是指:系统选择运行哪些任务,何时运行,何时中断以及以何种方式运行或中断。轮询调度规则是指:每个作业运行时间固定,该作业结束后,切换

2016-08-01 22:58:06

linux基础——经典线程同步问题解析及编程实现

前两天写了个简单的线程池,结果在处理线程的同步互斥上花了不少时间,觉得有必要把以前学习的知识再过一遍,这次主要复习的是几个非常经典的同步互斥问题:生产者-消费者问题、读者-写者问题、哲学家进餐问题以及吸烟者问题

2016-07-31 23:47:32

linux基础——linux进程与线程的区别与联系

进程和线程的区别与联系:1、从属:一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。1、调度:在传统的操作系统中,拥有资源和独立调度的基本单位都是进程。在引入线程的操作系统中,线程是独立调度的基本单位,进程是资源拥有的基本单位。在同一进程中,线程的切换不会引起进程的切换。在不同进程中进行线程切换,如从一个进程内的线程切换到另一个进程的线程时,会引起进程切换。

2016-07-28 14:18:18

linux基础——linux线程间通信及同步机制总结

线程间的通信有两种情况:1、一个进程中的线程与另外一个进程中的线程通信,由于两个线程只能访问自己所属进程的地址空间和资源,故等同于进程间的通信。2、同一个进程中的两个线程进行通信。本文说的就是第二种情况。关于进程间通信(IPC)可以看我的另一篇博文http://blog.csdn.net/a987073381/article/details/52006729

2016-07-25 22:45:16

查看更多

勋章 我的勋章
    暂无奖章