- 博客(53)
- 资源 (15)
- 收藏
- 关注
原创 libevent高性能网络库源码分析——事件循环(五)
libevent事件循环的流程事件循环源码分析libevent事件循环的流程libevent将IO事件、信号事件和定时器事件很好的结合在一起,采用了统一的事件源方式,即把信号事件也转换成IO事件,然后采用同一套IO复用机制去监听。libevent的事件循环通过event_base_loop完成,另外一个事件循环函数是event_base_dispatch,其功能上即为没有设置标志的 event_b
2016-04-22 00:53:04 1064
原创 libevent高性能网络库源码分析——事件处理框架(四)
event_base结构event_base的初始化接口函数libevent中基于Reactor模式的事件处理框架对应event_base,在event在完成创建后,需要向event_base注册事件,监控事件的当前状态,当事件状态为激活状(EV_ACTIVE)时,调用回调函数执行。本文主要从以下几方面进行分析:event_base的结构,event_base的创建,事件的注册、事件分发、事件注
2016-04-19 22:03:46 5398
原创 libevent高性能网络库源码分析——Reactor模式(二)
IO模型介绍Reactor模式IO模型介绍在介绍libevent的Reactor模式之前,首先介绍下IO模型的: 1、 同步阻塞IO(Blocking IO): 即传统的IO模型。当用户进程向系统发起read操作时,首先需要在内核中数据准备和内核态到用户进程的数据拷贝。当两个步骤都完成后,才会返回read结果状态,才能执行后续的数据处理操作。{ read(socket, buffer)
2016-04-18 20:28:47 3928
原创 libevent高性能网络库源码分析——介绍(一)
libevent介绍libevent源代码结构libevent介绍Libevent是一个开源的轻量级高性能网络库,基于C语言编写。该网络库基于事件驱动,具有如下优点:事件驱动,基于高性能的Reactor(反应器)模型;跨平台,支持 Windows、Linux和 Mac Os; 支持多种 I/O多路复用技术 epoll、poll、dev/poll、select 和kqueue 等,对I/O多路复
2016-04-17 21:29:27 1425
原创 DBLP实验数据集处理
DBLP介绍XML数据格式解析XMLDBLP介绍DBLP是计算机领域的英文文献数据库,收录了国际期刊和会议等公开发表的论文。DBLP没有提供对中文文献的收录和检索功能,国内类似的权威期刊及重要会议论文集成检索系统有C-DBLP。DBLP是德国特里尔大学的Michael Ley负责开发和维护。它提供计算机领域科学文献的搜索服务,但只储存这些文献的相关元数据,如标题,作者,发表日期等,并使用XML存
2016-04-12 14:12:14 7394 9
转载 NLP -- 公开数据收集
wiki数据集 下载地址是:http://dumps.wikimedia.org/ 介绍:http://en.wikipedia.org/wiki/Wikipedia:Database_download wikipedia只是Wikimedia基金会的一个子项目,wikimedia下面还有多个其他的重要项目: wiktionary 一个语义化的关联词典,形式上类似于wo
2016-04-07 23:24:07 2991
原创 社区发现数据集
社区发现数据集目录社区发现数据集目录基于链接分析的数据集基于链接与离散型属性的数据集基于链接与文本型属性的数据集其他常见的数据集链接基于链接分析的数据集Zachary karate club Zachary 网络是通过对一个美国大学空手道俱乐部进行观测而构建出的一个社会网络.网络包含 34 个节点和 78 条边,其中个体表示俱乐部中的成员,而边表示成员之间存在的友谊关系.空手道俱乐部网
2016-04-07 23:09:05 40280 48
原创 欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2015-05-23 15:37:43 459
转载 Makefile详解
原文:跟我一起写 Makefilehttp://www.cnblogs.com/awpatp/archive/2010/06/24/1764103.html什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多
2014-12-01 15:24:38 534
原创 awk命令详解
1、awk介绍awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan
2014-11-26 00:12:19 953
原创 sed命令详解
1、介绍sed是一个非交互式的编辑器,它不会修改原有输入的文件,除非使用shell重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。sed特别适用于对文件行的处理,包括如字符串查找,替换,空格剔除等,具体执行过程如下:1)首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间)2)处理临时缓冲区中的行,完成后把该行发送到屏幕上,并将该行从临时缓冲区中删除
2014-11-25 22:03:04 682
转载 C/C++函数调用过程分析
这里以一个简单的C语言代码为例,来分析函数调用过程代码: 1 #include 2 3 int func(int param1 ,int param2,int param3) 4 { 5 int var1 = param1; 6 int var2 = param2; 7 int var3 = param3; 8
2014-11-04 23:47:19 546
转载 C++中的操作符重载
一、什么是操作符重载操作符重载可以分为两部分:“操作符”和“重载”。说到重载想必都不陌生了吧,这是一种编译时多态,重载实际上可以分为函数重载和操作符重载。运算符重载和函数重载的不同之处在于操作符重载重载的一定是操作符。我们不妨先直观的看一下所谓的操作符重载: 1 #include 2 3 using namespace std; 4 5 int main() 6
2014-11-04 23:43:52 496
转载 C++虚继承的概念
C++中虚拟继承的概念为了解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类。这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也只有一个映射。这样不仅就解决了二义性问题,也节省了内存,避免了数据不一致的问题。class 派生类名:virtual 继承方式 基类名virtual是关键字,声明该基类为派生类的虚
2014-11-04 23:38:53 542
转载 C++中虚析构函数的作用
我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:class ClxBase{public: ClxBase() {}; virtual ~ClxBase() {}; virtual void DoSomething() { cout "Do
2014-11-04 23:34:30 455
转载 C++访问控制权限
第一:private, public, protected 访问标号的访问范围,在没有继承的情况下:private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。但不能被该类的对象访问。public:
2014-11-04 23:31:06 715
转载 strcpy和memcpy的区别
strcpy和memcpy的区别strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需
2014-11-04 23:20:14 463
转载 C++中的空类,默认产生哪些类成员函数?
class Empty{ public: Empty(); // 缺省构造函数 Empty( const Empty& ); // 拷贝构造函数 ~Empty(); // 析构函数 Empty& operator=( const Empty& ); // 赋值运算符 Empty* ope
2014-11-04 23:18:27 604
转载 C++内存分配情况
1、程序代码区:存放函数体的二进制代码。 2、全局区数据区:全局数据区划分为三个区域。全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。常量数据存放在另一个区域里。这些数据在程序结束后由系统释放。我们所说的BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英
2014-11-04 23:13:21 559
转载 搜索领域BM25算法
BM25 is a bag-of-words retrieval function that ranks a set of documents based on the query terms appearing in each document, regardless of the inter-relationship between the query terms within a docum
2014-11-04 22:56:28 628
原创 Linux wc命令
wc命令:wc命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。语法:wc [选项] 文件...说明:该命令统计指定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所指定文件的总统计数。下面让我们来简单的看一下其支持的参数及其代表的含义。
2014-11-03 21:37:12 559
原创 Linux export命令
功能说明:设置或显示环境变量。语 法:export [-fnp][变量名称]=[变量设置值]补充说明:在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该此登陆操作。参 数: -f 代表[变量名称]中为函数名称。 -n 删除指定的变量。变量实际上并未删除,只是不会输出
2014-11-03 20:49:42 546
转载 Linux source命令
source命令用法:source FileName作用:在当前bash环境下读取并执行FileName中的命令。注:该命令通常用命令“.”来替代。如:source .bash_rc 与 . .bash_rc 是等效的。 source命令(从 C Shell 而来)是bash shell的内置命令。点命令,就是个点符号,(从BourneShel
2014-11-03 20:21:10 582
转载 .bash_profile和.bashrc的区别及启动过程
/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置./etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时
2014-11-03 20:06:31 557
原创 归并排序
1、归并排序归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。
2014-11-02 14:54:40 532
原创 堆及堆排序
1、二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父结点的键值总是小于或等于任何一个子节点的键值时为最小堆。下图展示一个最小堆:
2014-11-02 14:19:22 528
原创 快速排序
快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)
2014-11-02 13:18:31 458
原创 Indri和Terrier搜索引擎的使用
Indri和Terrier都是开源的搜索引擎,其中Indri作为Lemur项目的一个重要部分,具有强大的查询接口,易建索引,可扩展,高效率等优点。可以在SourceForge Lemur Project Page中下载。Terrier也是IR领域非常有影响力的开源搜索引擎,Terrier是Glasgow大学用Java语言编写的,具有高效灵活及易于部署等特点,目前最新的版本为Terrier 4.
2014-10-29 20:26:21 5022 3
转载 Java HashMap实现机制
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现()。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。
2014-10-27 20:50:40 438
转载 C++笔试题解析
经典C++笔试题解析1、private 与 protect 关键字的区别。派生类能访问基类的protect成员而不能访问private成员。Private对派生类及用户都不可见,public对派生类和用户都可见,private介于二者之间,对派生类可见对用户不可见。 2、友元,friend 如何声明一个友元。 3、缺省构造函数。当类声明了一个带参
2014-04-18 20:37:26 1652
原创 操作系统知识点
上一节对数据库的知识做了一个小总结,实际找工作过程中,因为公司或单位侧重点不一样,考察的知识也是不尽相同的,但是作为计算机类的学生,操作系统的知识也是必不可少的,去年参加笔试面试的时候,腾讯微软阿里等公司的笔试题都或多或少对操作系统相关的知识点进行了考察。作为一个非计算机科班出生的学僧,当初并没有学这门课,略尴尬,只有临时啃书补一补了,这里给出的是一份操作系统常考知识点的总结,希望能给大家带来一些
2014-04-18 20:35:43 1398
原创 数据库知识点总结
数据库也是计算机类笔试面试中不可避免会遇到的考点,尤其是银行和部分传统软件类公司。这里根据整理的资料,对数据库的相关知识也做个总结吧。希望学过数据库但长时间不用的同学根据这些知识能够回忆和重拾,没学过的同学能掌握一些数据库的基础知识。第一节一、相关概念1. Data:数据,是数据库中存储的基本对象,是描述事物的符号记录。2. Database:数据库,是长期储存在计算机
2014-04-18 20:27:33 2728 1
原创 程序员面试智力题(二)
史密斯住在第十三号大街,这条大街上的房子的编号是从13号 到1300号。琼斯想知道史密斯所住的房子的号码。琼斯问道:它小于500吗? 史密斯作了答复,但他讲了谎话。琼斯问道:它是个平方数吗? 史密斯作了答复,但没有说真话。琼斯问道:它是个立方数吗? 史密斯回答了并讲了真话。琼斯说道:如果我知道第二位数是否是1,我就能告诉你那所房子的号码。史密斯告诉了他第二位数是否是1,琼斯也讲
2014-04-18 19:52:01 2200
POSIX多线程程序设计
2016-04-21
一线架构师实践指南(温昱)
2016-04-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人