- 博客(103)
- 资源 (22)
- 收藏
- 关注

转载 linux 定时器
原文出处:点击打开链接使用定时器的目的无非是为了周期性的执行某一任务,或者是到了一个指定时间去执行某一个任务。要达到这一目的,一般有两个常见的比较有效的方法。一个是用linux内部的三个定时器,另一个是用sleep, usleep函数让进程睡眠一段时间,使用alarm定时发出一个信号,还有那就是用gettimeofday, difftime等自己来计算时间间隔,然后时间到了就执行某一任务,但是
2014-12-07 11:46:06
467

原创 muodu 开源阅读(一)
服务器的启动服务器启动:创建一个TcpServer(包含EevntLoop,acceptor,EventThreadPool),调用setThreadNum设立线程的数目,然后调用Start()启动server,在start函数中主要有threadPool_->start(threadInitCallback_);和loop_->runInLoop(boost::bind(&Acceptor:
2014-12-02 22:42:30
625

转载 CDN原理
转载:http://www.72e.net/cdnspeed/cdnyuanli.aspx首先,让我们来看一下传统的Internet网络的基本结构和数据传输情况,如下图所示。Internet 网络基本结构及数据传输方式根据传统的网络结构,用户的访问流程基本如下: 用户在自己的浏览器中输入要访问的网站的域名 浏览器向本地DNS请求对该域名的解析
2014-03-03 17:21:10
1352

转载 关于阻塞,非阻塞的读过的最好的文章
标签:c++ c epoll作者:蓝形参,<strong title="Geek" 伪技术宅"="" class="xukw" style="padding: 0px; margin: 0px; ">Geek 伪技术宅 首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都
2014-02-18 14:33:27
627

原创 nginx学习篇:数据结构
nginx的数据结构nginx自己封装了很多数据结构。因为nginx具有两个特点:跨平台,c语言,所以很多库中的容器和数据结构就不能使用了,针对不同平台,nginx也封装了很多系统调用,这样在上层看来能做到统一的调用接口。一 nginx里简单的树结构1.1 ngx_queue_t ngx_queue_t 是nginx里重要的数据结构,采用双向链表的形式,具体定义在Ngx_queu
2014-02-17 17:20:04
502

原创 nginx学习篇:内存池
nginx管理内存池的数据结构是ngx_pool_t。在ngx_request_t, ngx_conf_t中都控制着ngx_pool_t。一.在nginx的Ngx_palloc.h里的定义如下:struct ngx_pool_s { ngx_pool_data_t d; size_t max; ngx_pool_t
2014-02-11 17:17:38
603
原创 muodu 开源阅读(二)
muduo定时器分析muduo涉及定时器的类包括:TimerQueue, TimerId, Timer, Timestamp。
2014-12-05 22:01:06
348
原创 muduo 开源阅读笔记(一)
关键数据结构/关键字文件Mutex.h中:#define MCHECK(ret) ({ __typeof__ (ret) errnum = (ret); \ if (__builtin_expect(errnum != 0, 0)) \ __assert_perror_fa
2014-11-25 23:48:28
389
原创 nginx学习篇:数据结构ngx_pool_t
在nginx的数据结构ngx_request_t和ngx_conf_t中都有一个ngx_pool_t。此数据结构主要完成内存池的分配和释放。
2014-02-11 11:08:09
508
原创 UML-类图的创建
最近在看一个源码,打算看完给实验室的讲讲,时间初步定在25号吧,以ppt的形式,用类图的形式,展现出来,于是安装了个visual paradigm,这里主要学习一下UML的类图的画法。主要以例子的形式学习。
2014-01-21 14:18:55
466
转载 select poll epoll 原理解析
select, poll和epoll的区别2010-06-29 21:47:13标签:pollselect 休闲 职场随着2.6内核对epoll的完全支持,网络上很多的文章和示例代码都提供了这样一个信息:使用epoll代替传统的poll能给网络服务应用带来性能上的提升。但大多文章里关于性能提升的原因解释的较少,这里我将试分析一下内核(2.6.21.1)代码中
2013-10-01 22:50:59
1962
转载 select:编程思想
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非
2013-10-01 08:55:29
604
原创 TCP服务器:多进程
代码:server:#include#include#include#include #includeint main(int argc,char**argv){int sockfd, new_fd;/*监听socket:sock_fd,数据传输socket:new_fd*/struct sockaddr_in my_addr;/*本机地址信息*/struct soc
2013-09-29 20:50:07
1233
原创 爱奇艺 笔试题
一个数组大小N,由0到N-1之间的数组组成,或重复,或不存在,请统计每个数字出现的次数。void parseArr(int arr[], int n){ for (int i=0; i<n; i++) { arr[arr[i] % n] += n; } for (int i=0; i<n; i++) {
2013-09-29 17:54:41
3144
转载 约瑟夫环的推导
网上找了很多,终于找到一个靠谱的连接,转载GX,原文连接:点击打开链接约瑟夫环约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围;从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。前几天,在一篇文章中得知了约瑟夫环的问题。然后,就涉
2013-09-13 23:39:36
6192
1
原创 华为一道机试
int IsMatch(char* str ){ assert(str!=NULL); stack stk; int bResult=0; while(*str!=NULL) { if(*str=='['||*str=='(') stk.push(*str); if(*str==']') { d if(stk.empty(
2013-09-10 16:15:12
1075
原创 链表反向,
链表反向:template class Node { public: T data; Node* next;};template class link{public:link(){ head=new Node();head->data=1;head->next=NULL;Node* pNew=NULL;Node* p=
2013-09-09 14:46:09
661
原创 迅雷2014笔试题答案
题目来源:http://www.itmian4.com/forum.php?mod=viewthread&tid=3427&extra=&page=1一,1, B; 2, A; 3,D; 4,D; 5,c; 6,A; 7,B; 8,B; 9,C; 10, B; 11, C; 12, 不会 13, A; 14,D;
2013-09-08 18:50:45
309
原创 工作的准备:atoi,itoa,strcpy,memcpy,strcmp,二分查找,strcat
对常见的几个函数,周末没事写写,绝对是笔试面试中非频繁,前面n届学长无数次强调了,大家就别怀疑了。从今天开始,每天10道题。 int atoi(const char* str){ if(str==NULL) return 0; bool sigFlag=true; int i=0; int sum=0;while(str[i]!='\0'){ if(
2013-09-02 22:46:17
740
原创 2013腾讯暑期实习题 分析
8月末了,最后的时间里,没事看看论文,准备一下笔试的事,最近一大学好哥们总问我校招的事,我也尽力回答,素不知我也是半吊子啊。随手找来2013腾讯暑期实习的笔试题,做做,感觉选择题挺基础,有的也不会,总体感觉一般般,非选择题比较难。一、 单项选择题1) 给定3个int类型的正整数x,y,z,对如下4组表达式判断正确的选项()Int a1=x+y-z; int b1=x*y/z;
2013-08-23 09:51:32
218
原创 腾讯的一道面试题
给定一个数组A[N],我们希望构造数组b[N],其中b[j]=a[0]*a[1]*...*a[j-1]*a[j+1]*...*a[N];构造过程不能使用除法:要求时间复杂度O(n),空间复杂度O(1);除遍历计数器与a[N] b[N]外,不可使用新的变量(包括临时栈变量,堆空间变量,全局变量);断断续续想了好几天,#includeusing namespace std;te
2013-08-22 22:02:37
571
转载 放射变换的原理
仿射变换是二维平面中一种重要的变换,在图像图形领域有广泛的应用。许多人对“仿射”没有一个感官的认识,我觉得很有必要先来说一下“仿射”。所谓的“仿射变换”就是一种简单的变换,它的变化包括旋转、平移、伸缩,原来的直线仿射变换后还是直线,原来的平行线经过仿射变换之后还是平行线,这就是仿射。仿射变换的矩阵是其次坐标形式的变换矩阵这个矩阵包含的变换有旋转和平移,其实是两个矩阵的混合体,许
2013-08-22 11:01:33
720
原创 nginx 系列学习篇之 数据结构
下面主要介绍nginx里用的数据结构,以后读源码当然还会回过头来看看。在nginx里的变量类型一般都以ngx开头typedef intptr_t ngx_int_ttypedef uintptr_t ngx_uint_t 分别定义了ngx里的有符号和无符号整数。其中intptr_t的定义如下:typedef long int intptr_t
2013-08-20 17:04:26
146
转载 select、poll和epoll
转载地址:http://blog.endlesscode.com/2010/03/27/select-poll-epoll-intro/by Stephen posted on 2010/03/27对select、poll、epoll了解得不多,下面是从《构建高性能Web站点》摘录下来的介绍,等以后真正接触到select、poll和epoll方面的开发再详细写一下使用上的区别。
2013-08-18 21:54:53
574
原创 试题练习
http://blog.youkuaiyun.com/lanyan822/article/details/7983832 快找工作了,找几道题来练练手,保持感觉,最近半个月就是狂做题,狂练习,华为的上机题:上机时间两小时,3道题1 字串转换问题描述:将输入的字符串(字符串仅包含小写字母‘a’到‘z’),按照如下规则,循环转换后输出:a->b,b->c,…,y->z,z->a;若输入的字
2013-08-10 13:40:48
161
原创 DP总结
前言面试之前,总结一下dp。具体概念,看我的之前写的有关dp的博客,这里主要总结LCS,0-1背包,数组分割,数中和最大的子数组,数组的最长递增子序列,以及字符串的相似度。接下来分为俩部分,第一部分,引入各个算法的关键代码。第二部分,主要是表格总结,包括时间和空间复杂度,递推关系式。关键代码分析LCS:#include#includeusing namespace std;
2013-08-10 10:50:27
596
原创 这部分主要介绍链表 包括基本的链表建立 删除 插入,以及常用的链表环的检测,环起点,链表交叉,交叉点
链表的建立 删除 插入 #includeusing namespace std;templateclass link{ public: link(T d,link* L) { Data=d; next=L; } link* NEXT()const { return next; } T ReadData()c
2013-08-05 15:05:29
701
原创 贪心复习
前言复习一下贪心算法,主要涉及俩个经典题目,这里重现一下,活动选择和部分背包问题,主要分三部分,贪心的基本概念,活动选择,部分背包问题。贪心的基本概念所谓贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。这是贪心算法可行的第一个基本要素,也是贪心算法与动态规划算法的主要区别。在动态规划算法中,每步所做的选择往往依赖于相关子问题的解。因而只有在解出相关子
2013-08-01 12:17:20
556
原创 快排和二分的复习
过了很长时间了,怕自己忘了,重写一下快排和二分。 void fastSort(int * arr,int n,int m){ int tmp; if(m-n<1) return;//退出递归的条件 int partition=arr[m];//分割元素 int i=n-1;//double pointer //int j=n; for(int j
2013-07-25 16:05:52
750
原创 编程之美 计算字符串的相似度
许多程序会大量使用字符串。对于不同的字符串,我们希望能够有办法判断其相似程度。我们定义了一套操作方法来把两个不同的字符串变得相同,具体的操作方法为: 1.修改一个字符(如把"a“替换为"b"); 2.增加一个字符(如把"abdd"变为"aebdd"); 3.删除一个字符(如把"travelling"变为"traveling")。比如,对
2013-07-22 11:53:54
1210
原创 编程之美 求数组中的最长递增子序列
如题,例如:存在数组 1,-1,2,-3,4,-5,6,-7 ,则最长的递增子序列是:1,2,4,6.法一: 蛮力法 int Lis(int* arr,int n){ int iCount=0;//记录子序列的个数 int tmp_count=0; int tmp; for(int i=0;i<n-1;i++) {
2013-07-21 12:09:12
1251
原创 编程之美 数组循环移位
设计一个算法,把一个含有N个元素的数组循环右移K位,要求时间复杂度为O(N),且只允许使用两个附件变量。法一: 挨个遍历,每个移动K位,复杂度RightShift(int* arr,int N, int K) { while(K--) { int t=arr[N-1];
2013-07-17 16:04:19
1186
原创 编程之美 求数组的子数组之和的最大值
一个有N个整数元素的一位数组(A[0],A[1],A[2],...,A[n-1]),这个数组当然有很多子数组,那么子数组之和的最大值是什么?比如 -2 5 3 -6 4 -8 6 的最大子数组是 5 3。 法一: 挨个遍历查找:int maximum=-INF;int sum;for(int i=0;i<n;i++){
2013-07-16 14:51:40
593
原创 编程之美 快速寻找满足条件的两个数
能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解。 法一: 最直接的方法就是,穷举法,复杂度为O(N^2); 法二: 利用sum减去a[i],再查找sum-a[i],是否在数组里,这时候就变成查找了,可利用二分查找;排序的复杂度为O(
2013-07-15 15:28:20
614
原创 面试题 :把一个集合拆成两部分,使其和相等
如题:比如一个集合{1,3,4,2,5,7,8},则拆成的两个集合为{1,3,4,2,5},{7,8}。 迅雷的一道面试题。
2013-07-13 21:17:37
947
原创 编程之美 寻找数组中的最大值和最小值
寻找一个数组里的最大值和最小值法一: 分别遍历一遍,次数O(2*N);法二: 根据书上的讲述, 法三: 主要在法二的基础上改进,法二改变了原数组,法三主要是不改变原数组,定义两个变量MAX和MIN,分别保存最大值和最小值。法四: 分治法,这是重点。typedef struct{ int MAX;
2013-07-13 17:33:32
1021
原创 编程之美 裴波那楔数列
给出如下递推式: 以上就是经典的Fibonacci数列,下面给出递推的解法: int Fibonacci(int n){ if(n<=0) return 0; else if(n==1) return 1; else return Fibonacci(n-1)+Fibonacci(n-2);}
2013-07-13 12:08:16
883
Desktop.rar
2020-07-17
文件的读取 涵盖资料讲解 三个而例子程序
2011-11-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人