自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(136)
  • 资源 (44)
  • 问答 (1)
  • 收藏
  • 关注

原创 败者树多路排序

定义:败者树是一个完全二叉树,非叶子节点记录失败者。那么相对于胜者树,具有访存小的优势。胜者树胜者拿走后,整条通路(从叶子到根)所有记录的胜者信息失效,那么新加入节点需要从叶子一直遍历到根,有可能每次都要写入(更新新的胜者)。而败者树,新加入的节点可以利用整条路径的败者信息。败者树构建构建过程: ① 初始四个数组,1,2,3,4,内部节点为-1;构建完全后,内部节点记录数组编号。 ② 数组4中元

2017-09-30 14:45:16 982

原创 git基本命令

基本流程stash ----> work ----> index ----> local repo ----> remote repostash 暂存空间 work 当前工作空间 index 为git追踪文件目录,通过git add将文件加入index(精心准备提交的文件) local repo 本地仓库 remote repo 远程仓库基本命令CON...

2017-01-14 22:41:51 835

原创 一场Socket四次握手引发的血案

一场Socket四次握手引发的血案前奏Hello Everybody,原谅我是一个标题党。事情是这样的,周末,同事在微信上抛来一个问题,原文如下:服务端某个服务timewait过多,网上说端口会耗尽,我怎么感觉是fd会耗尽呢,因为一个服务通常只使用一个端口在记忆的某个角落里,翻出了四次握手的状态图,虽然模模糊糊,但是还是有点印象。

2016-07-28 19:56:37 2994 4

原创 protobuf 安装与使用

安装安装依赖autoconfsudo apt-get install autoconflibtool sudo apt-get install libtool准备源码下载源码 protobuf 2.6.1解压 unzip protobuf-2.6.1.zip安装$ ./autogen.sh$ ./con

2016-07-09 17:35:12 696

原创 自己动手写线程池之锁的优化

问题描述线程池将任务Task添加到工作队列中,该队列使用STL List实现。每次添加任务的时候,都需要获取线程锁,然后操作队列。template typename Item>void ThreadQueue::Push(const Item &item){ { ThreadLocker::Locker lock(&_locker); _q

2016-07-09 16:46:57 869

原创 自己动手写线程池之线程池实现

线程池工作流终于来到这了,前面做了若干准备工作,都是为了构建线程池。仿照NGINX线程池模型,绘制了线程池工作流程,如下图所示:任务定义任务基类Task,所有用户自定义Task都要继承该类,实现Exec方法。线程从任务队列中获取Task,执行Exec。class Task{public: virtual void Exec()

2016-07-09 16:45:24 725

原创 自己动手写线程池之锁的管理

锁的裸用pthread_mutex_t mutex;pthread_mutex_init(&mutex, &mutex_attr);pthread_cond_t cond;pthread_cond_init(&cond, &cond_attr)//////////////////////////////////////////////pthread_mutex_lock(&mutex)

2016-07-09 16:43:08 875

原创 自己动手写线程池之异常

C语言中,通过函数返回值来获知此次操作的结果。在实现线程池时,采用异常机制。同时,为了能够精确区分抛出异常的类以及对异常的精确处理,在每个类中,都实现一个针对该类定制的异常类。异常基类class Exception : public exception{public: explicit Exception(const string &text); Exception

2016-07-08 13:15:44 435

原创 自己动手写线程池之线程

线程封装pthread_t tid;pthread_create(&tid, NULL, callback, NULL);最原始的线程创建方式,线程通过回调函数callback来实现不同的功能。这种方式不仅使得线程创建函数散落在代码的各个地方,而且通过函数功能来区分线程有违面向对象概念。接下来,通过面向对象思想将线程进行封装,用户只需要继承线程基类,实现回调函数,即可完成自定义

2016-07-08 10:05:31 1310

原创 Shell 实现多任务并发

实现思路实现一个shell进程库,通过类似于init,run,wait几个简单的命令,就可以迅速实现多进程并发,伪码如下:process_init # 创建进程for city in ${cities[*]}do cmd="handler $city" process_run $cmd doneprocess_wait # 等待进程原理解析在

2016-05-17 09:02:00 27866

原创 Valgrind 内存问题简述

参数配置gcc-g: 增加调试信息,供valgrind精确定位。-O0:关闭gcc优化;优化产生的代码可能会造成valgrind误判。valgrind--leak-check=fullno: 不进行内存泄露检测; summary: 显示内存泄露情况; full:不仅显示内存泄露,还显示出错代码。--show-rea

2016-05-11 16:12:31 5510

原创 Linux 调试工具

gprof代码信息代码:N皇后问题,N=14bool place(int *result, int row){ for(int i = 1; i { if(result[i] == result[row] || abs(i-row) == abs(result[i] - result[row])) {

2016-05-11 16:09:45 643

原创 Linux 系统监测工具

uptime[~]$ uptime13:24:46 up 207 days, 3:27, 2 users, load average: 1.45, 1.34, 1.33system time: 系统当前时间13:24:46 system uptime:系统运行时间207天3小时27分 users:当前登入系统的用户数 load average:过去的1分钟,5

2016-05-11 16:00:40 9564

原创 Shell 简易教程

语法变量${variable} 获取变量值,简写$variable。当涉及变量拼接时,必须使用{}。如:${variable}_name。variable=value 变量赋值,=左右两边不能有空格。命令结果赋值。 variable=$(ls -a) 或者 varivale=`ls -a` 。环境变量。打开shell的时候,创建环境变量。该shell创建的子进程将继承该

2016-05-11 15:58:31 7568

原创 libevent-1.4.so.2动态链接库加载失败

问题描述:./server: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory问题原因:LD_DEBUG=libs ./server -v > log 2>&1在所有搜寻路径中,都无法

2016-05-09 13:52:10 3382

原创 Linux 三剑客之AWK

3. Awk3.1 语法AWK 命令模式:地址+动作 awk '/search pattern/ {actions}' file地址通过正则表达式匹配得到,AWK默认采用ERE 模式。3.2 参数 参数 含义 -F field-separator, 字段分隔符 -f 引入awk脚本 -v -v var=val, 设置变量值字段 与 记录记录: 类似于数据库中的一行数

2016-03-04 12:40:01 1368

原创 Linux 三剑客之Grep&Sed

1. Grep语法 grep pattern filename pattern 参考简单正则参数 参数 函数 -i 忽略大小写 -w 全词匹配 -r/R 递归匹配文件夹中文件 -n 显示行号 -c 显示匹配行数 -v 显示不匹配的行 -l 显示匹配的文件名grep -i -l -r "Student" /src/ --color

2016-03-04 12:39:13 961

原创 正则表达式简单用法

1. 正则语法1.1 基本元字符 元字符 含义 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意空白符 (Space Tab) \d 匹配数字 ^ 匹配字符串的开头 $ 匹配字符串的结尾1.2 重复 元字符 含义 * 零次或更多次 + 一次或更多次 ? 零次或一次 {n}

2016-01-24 15:31:09 3994

原创 Makefile 简易教程

1. 定义target: dependencies[tab] command NOTE: [tab] 不能为四个空格。2. 使用规则2.1 测试文件 func.h func.cpp main.cpp+++++++++++++++++++++++++++++++++++++++++++++++++++

2016-01-15 11:40:29 562

原创 SVN 简单使用方法

SVN 简单使用方法1. SVN 数据流2. SVN 命令2.1 基本命令co [checkout] 远程仓库checkout到本地 up [update]  远程仓库中版本变化更新到本地 ci [commit]  工作目录中文件变化提交到远程仓库 st [status]    工作目录中文件状态 add       将文件纳入版本管理 Note:status 状态 A A

2016-01-12 09:30:25 1007

原创 GDB 调试

调试命令启动调试rungdb

2015-12-30 09:55:36 486

原创 pthread mutex 属性

mutex互斥锁有四种属性,分别是NORMAL, ERRORCHECK, RECURSIVE, DEFAULT。

2015-12-02 09:47:38 3196

原创 libevent事件循环

1. 纠正时间,因为用户可能手动更改本地时间,这样导致时间不准确,超时事件受到影响。2. 获取堆顶元素超时时间,与当前时间相减,得到差值,该差值传给epoll,让其最晚在差值时间后返回。如果,当前堆顶已经超时了,则直接返回0,让epoll_wait 立即返回。3. 记录时间点1, tv_cache-> event_tv4. epoll_wait等5. 记录时间点 2  系统调用获取

2014-11-13 10:34:40 1249

原创 libevent示例代码

仅仅演示libevent的使用过程,不去考虑

2014-11-13 10:32:50 1576

原创 libevent定时器机制

超时机制:时间是时间点,比如8:40:35超时,那么获得当前时间,如果小于该时间,则视为超时。 添加超时事件:添加超时事件的时候,添加相对时间,比如8s后超时,在内部会进行处理,即取得当前时间,加上超时时间,得到超时时间点。 struct timeval tv; tv.tv_sec = 10;tv.tv_usec = 0; evtimer_set(&ev

2014-11-13 10:30:31 966

原创 libevent信号机制

结构体struct evsignal_info { struct event ev_signal; /* 整体作为一个事件,加入epoll中 */ int ev_signal_pair[2]; /* 信号套接字 */ int ev_signal_added; /* 是否加入epoll */volatile sig_atomic_t evsignal

2014-11-13 10:29:46 1380

原创 libevent主要数据结构

1. 通用结构体#define TAILQ_ENTRY(type) \struct { \ struct type *tqe_next; /* next element */ \ struct type **tqe_prev; /* previous element */ \

2014-11-13 10:28:42 1030

原创 libevent开篇

libevent是一个基于事件的网络库,用于管理

2014-11-13 10:28:19 939

原创 env export set declare区别

1. env    显示当前系统的环境变量 G_BROKEN_FILENAMES=1HISTCONTROL=ignoredupsHISTSIZE=1000HOME=/rootHOSTNAME=www.nginx.comJAVA_HOME=/usr/java/jdk1.8.0_20LANG=en_US.UTF-8LESSOPEN=|/usr/bin/lesspipe.sh %s

2014-11-12 22:03:15 907

原创 NGINX 进程通信机制

我认为nginx的进程通信分为三种类别:linux 系统与nginx 通信, master

2014-08-30 17:05:18 4948

原创 编辑距离

问题描述:由一个字符串

2014-08-30 16:03:14 668

原创 最长公共子串

之前写过一篇最长公共子序列,

2014-08-30 11:13:08 1065

原创 中缀转后缀求值

中缀转后缀思路:1. 扫描字符串,遇到数字输出,遇到操作符c    栈顶操作符的权值小于c,直接入栈   ‚ 栈顶操作符的权值大于等于c,依次弹出,直到栈顶权值小于c,c入栈2. 括号需要特别处理,入栈之前与入栈之后,括号的优先级发生变化    ‘(’在栈外权值最大,即无条件入栈   ‚ ‘(‘在栈内权值最小,即任何其他(除‘)’外)操作符,都可入栈   ƒ 

2014-07-14 17:00:34 764

原创 NGINX 时间管理机制

nginx 自己维护了一个时间,用户向用户提供时间,它使用缓存时间的机制,这样避免了频繁的系统调用(gettimeofday),降低时间消耗。但缓存时间,又必须要及时更新时间,否则时间将不准确。

2014-06-10 10:26:25 1781

原创 网络通信原理模拟

自从接触了思科网络技术学院后,对packet tracer情有独钟,因为这个软件可以模拟真实环境,可以

2014-06-09 17:29:40 1462

原创 内存地址对齐

做过一些内存地址对齐的题,

2014-06-09 10:53:46 1708

原创 二进制炸弹实验报告

接触《深入理解计算机系统》这

2014-06-08 21:29:37 24555

原创 NGINX 内存池

内存池有众多的好处,比如减少外部碎片,加快分配速度等。 NGINX

2014-06-07 10:44:55 1033

原创 开题吧

接触NGINX有半年多的时间啦,

2014-06-06 19:40:11 894

原创 epoll 惊群

起因:最近,一直在学习nginx。对于事件模块所解决的”惊群“现象完全不明白,遂产生了此文。套接字:可以将服务器端的套接字分为 监听套接字 与 连接套接字。 监听套接字负责等待用户连接,而通过accept,获得一个新的套接字,该套接字为连接套接字,通过连接套接字与用户传送数据。何谓惊群:nginx 分为 master 进程 与 worker 进程,worke

2014-01-15 09:55:17 4627 3

CCNA2 FINAL EXAM ccna2答案 1卷

CCNA2 FINAL EXAM 试卷答案,英文的,大家参考一下,考个好成绩

2011-05-17

MFC 工作者线程 线程

利用工作者线程实现的一个累加程序,输入数据,工作者线程负责计算

2011-05-17

VC 改名软件 改名

一个很好用的VC改名软件,百试不爽啊………………

2011-04-01

flex+Apache.+mysql+php配置

flex apache mysql php 开发指导 …………

2011-03-22

Flex 中文帮助 文档

学习flex的必备文献,对于入门很有帮助

2011-03-22

颜色棒 MFC 色彩渐变 GradientFill

GradientFill实现的色彩渐变。拖动小箭头可以上下移动改变色彩,将小箭头拖到垃圾箱,删掉颜色

2011-03-22

MFC.Windows程序设计.第二版

MFC.Windows程序设计.第二版,微软官方出版,对于深入理解MFC很有帮助

2011-03-21

Google c++ Style 谷歌C++编程风格

google 公布的C++编程风格,word版本,pdf版本

2011-03-21

屏幕坐标转OpenGl坐标

屏幕坐标到opengl坐标体系的转换。详细介绍opengl的原理。

2011-03-12

adobe air 成绩统计 学位

统计,统计,还是统计,怎么就是不让提交呢

2011-03-10

OpenGL帮助手册

一些实用的OpenGL函数查询,详细说明了一些函数的用法,对于Openggl的学习帮助很大。 大家可以下载使用,函数内容很丰富

2011-03-01

自己动手写操作系统光盘资源

这里给出了于渊的自己动手写操作系统的光盘资源,欢迎下载

2011-01-28

java语言科学与艺术

斯坦福大学编程方法公共课的教材,经典。但是是英文的。公共课在网易的公开课频道有。

2011-01-12

EDA 跑马灯 SOPC

EDA SOPC 实现跑马灯 Nios II 9.0 IDE Quartus II 9.0 (32-Bit)

2010-12-08

EDA电子时钟 VHDL

VHDL语言设计的一电子钟表,在7段数码管走时 SW控制运行还是停止;KEY3调整小时,KEY2调整分钟,KEY1调整秒

2010-12-08

哈夫曼树 哈夫曼译码

编—译码系统的设计 内容: 读入待编码的文字,统计各字符出现的频率 构造哈夫曼树 得到各字符的哈夫曼编码 对原文进行编码 发送、接收 还原(译码)收到的文字 利用哈夫曼树,从根到叶子读0、1序列,直到终止,再读下一个字符 比较(校验) 合理设计窗口界面,待编码的文字通过窗口的编辑界面(类似记事本的编辑界面)录入,在界面上显示各个字符出现的频率及哈夫曼编码,对原文编码并在界面上显示出来;对译码文字还原,显示在界面上与原文对照。功能菜单或按钮自行设计,以合理为目的。 利用socket进行电文的发送与接收 在界面上显示出哈夫曼树及其生成过程

2010-12-07

数据结构单链表C++语言的实现

数据结构中单链表的实现,包括两个链表的合并,求交集,求并集,增加,删除,插入功能

2010-04-20

数据结构中缀转后缀计算C++

数据结构中,中缀转后缀的实现,运用文件流

2010-04-20

数据结构中缀转后缀计算的实现

数据结构中运用字符串流实现中缀转后缀的计算。 附有源代码

2010-04-20

lua-5.3.1 code

lua source code, linux

2015-06-22

ncurses-5.9

ncurses source code, linux

2015-06-22

readline-5.2

readline source code, linux

2015-06-22

vim-74_source_code

vim source code, linux

2015-06-22

neocomplete

neocomplete 源代码,下载日期2015.6.22 16:11

2015-06-22

博客配图资源

实现了一个校园网络通信模拟,以及家用网络状况的模拟结构,通过该模拟,能够清晰的理解网络的通信过程。

2014-06-09

网络通信模拟

实现了一个校园网络通信模拟,以及家用网络状况的模拟结构,通过该模拟,能够清晰的理解网络的通信过程。

2014-06-09

linux epoll

linux 下,采用epoll模型,演示web服务器“惊群”现象。 创建8个子进程,即工作进程,同时持有监听套接字,当有新连接 时,8个子进程被扰动。

2014-01-15

paste源代码

Paste Deployment is a system for finding and configuring WSGI applications and servers. For WSGI application consumers it provides a single, simple function (loadapp) for loading a WSGI application from a configuration file or a Python Egg. For WSGI application providers it only asks for a single, simple entry point to your application, so that application users don’t need to be exposed to the implementation details of your application.

2013-06-02

setuptools

setuptools

2013-06-02

repoze 源代码

repoze 源代码

2013-06-02

routes源代码

Routes is a Python re-implementation of the Rails routes system for mapping URLs to application actions, and conversely to generate URLs. Routes makes it easy to create pretty and concise URLs that are RESTful with little effort. Routes allows conditional matching based on domain, cookies, HTTP method, or a custom function. Sub-domain support is built in. Routes comes with an extensive unit test suite.

2013-06-01

webob源代码

WebOb provides wrappers around the WSGI request environment, and an object to help create WSGI responses. The objects map much of the specified behavior of HTTP, including header parsing and accessors for other standard parts of the environment.

2013-06-01

苹果Iphone原机铃声包

苹果Iphone原机铃声包

2012-02-12

gcc命令大全

gcc命令大全

2012-02-07

Android配置

Android配置

2012-02-07

dfsdfghfhfg

ghcccccccccccccccccccccmjyfgnmhjurfmhju

2011-06-11

CCNA FINAL EXAM 3

最后一套考试卷子,赶紧分享,大家一起学习

2011-05-17

CCNA2 FINAL EXAM 2卷

CCNA2 Final exam 第二套考试卷,赶紧分享啊

2011-05-17

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除