自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

文武天下

CSDN弹窗广告无法忍受,本博客不再更新,迁到http://www.cnblogs.com/whuqin/

  • 博客(204)
  • 资源 (48)
  • 收藏
  • 关注

原创 Linux网路编程系列-网络I/O模型

总体上讲,应用程序从网络中拿数据,要经历两个阶段:1、数据分组到达网络,并被拷贝到内核的某个缓冲区中,数据报准备好;2、数据从内核缓冲区拷贝至用户态应用程序的缓冲区。基于这两个过程,下面先给出各种IO模式的调用图,最后给出异步、同步IO等区分等。

2014-05-14 09:49:50 978

原创 boost常用记录

1.BOOST_FOREACH经常会遍历容器,写for/while循环到shou

2014-05-12 10:21:08 1074

原创 redis系列-redis的持久化

redis对数据的持久化有两种方式:RDB(快照保存)和AOF(命令日志)

2014-04-21 15:10:20 804

原创 分布式存储的一些概念

一致性哈希哈希常用于分布式计算的负载均衡,如缓存服务器对数据的划分,对于目标资源O的请求使用hash(O) = O mod n来映射到其中一台。一个问题是:当增加或删除一台cache server时(n发生了变化),所有资源对应的hash值被相应的改变,致使所有的缓存都失效,cache server需要大量更新缓存

2014-04-04 17:29:10 1216

原创 搜索引擎学习-实现

上篇文章介绍了搜索引擎的基本概念,有了大致的认识,本文说下搜索引擎实现上的一些问题。搜索引擎组成抓取系统:负责对互联网信息的搜集,将网页保存到本地,供下游分析、挖掘、建索引使用。分析系统:分析query,查询排序索引系统:整理资源,提取特征检索系统:用户query查找,结果展现离线计算和在线计算为了确保搜索引擎的响应时间和结果质量,在实现上,

2014-04-04 15:29:20 1292

原创 搜索引擎学习-概述

定义从互联网上搜索,通过文本匹配,采取一些手段找到最好的信息。结果衡量相关性-结果与query的匹配,结果与用户需求的匹配权威性-结果被引用次数(超链),链接分析时效性-结果对用户是有用新鲜的多样性-根据用户行为返回丰富的结果(苹果?)个性化-地域、用户喜好反spam可以抽象为1个打分公式:score = F(query, doc, user)搜索步骤数据的处理:

2014-03-21 16:08:17 1746

原创 设计模式-创建型模式(读书笔记)

看到一张图,先记录下来,再做修改

2014-03-13 13:38:08 783

翻译 redis系列-redis的使用场景

redis越来越受大家欢迎,提升下速度,做下缓存,完成KPI之利器呀。翻译一篇文章How to take advantage of Redis just adding it to your stack>>,来介绍下Redis的适用场景。展现最新数据Web应用中常常需要列出“用户最新添加的东西”等一些最近发生变化的数据,需要对备选数据进行排序才能展现,mysql中会如下:SELECT

2014-02-28 15:53:49 1807

原创 分布式系统设计准则

分布式系统通常服务大请求、维护着大数据、快速响应、长时间可用。设计分布式后台服务需要考虑的东西很多,本文给出一些常用的设计准则,以备查看。可用性:系统可以正常服务的时间,一些在线系统常常要求99%的可用性。高可用性往往通过关键组件备份冗余来实现(如冷备、热备)性能:快速响应、低延迟可靠性:系统可靠就是同样的请求返回同样的数据;更新能够持久化;数据不会丢失可伸缩性:系统额外还能处理多少流

2014-02-18 15:53:03 1049

原创 C++类型转换

一直觉得没写的必要,但还是记一下吧。太书面化记不住,就简单些下。类型转换分为隐式类型转换和强制类型转换。隐式类型转换是编译器自动执行,无需程序员介入。如下://算术转换double b = 5 + 3;//条件表达式int val = 0;if (val)......强制转换就是要在代码中写明的转换,具有危险性。C风格是:(type) xx;C++提供了四种转换

2014-01-15 16:08:01 739

原创 redis系列-redis的连接

Redis 是完全开源免费的,遵守BSD协议,先进的key - value持久化产品。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。redis客户端连接比较简单,但日常中redis的使用和维护会有很多地方需要学习。本文只简单介绍下常用函数。//h

2013-12-24 16:31:39 10746

原创 很好的设计-安全的单例模式

在服务开发过程中,常常需要单例来保存全局资源,本文给出一个实用的实现方案。

2013-12-18 17:23:25 889

原创 很好的设计-锁的自动使用和释放

多线程下,常常会使用互斥锁或者读写锁来确保临界区的正确使用。pthread_mutex_lock(&mutex);//using critical sectionpthread_mutex_unlock(&mutex);如果在使用临界区期间发生异常返回,导致锁没有释放。为了防止这种现象发生,我们通常要在每个return之前都要释放锁,增加代码量、影响美观,而且有忘记的隐患。期望一种能够

2013-12-18 17:08:47 1744

原创 linux下目录操作

1. 常用函数#include //open a directory//failed-NULL, other-return a DIR streamDIR *opendir (const char* path_name);//close the directory stream//0 succeed, -1 notint closedir(DIR* dir_ptr);//

2013-11-21 17:33:04 854

原创 linux网络编程系列-网络连接的建立

一个比较实用的连接函数,支持host为域名。#include #include #include #include #include #include #include #include using namespace std;int my_connect(const char *host, int port){ char buf[1024]; struct

2013-11-21 14:39:57 1205

原创 Linux网络编程系列-TCP编程实例

实例:client#include #include #include #include const int MAXLINE = 100;void str_cli(int sockfd) { char recvline[MAXLINE]; string str; getline(cin, str); while (!str.empty()) { sen

2013-10-18 15:10:32 969

转载 linux下获取线程号

#include pid_t gettid(){ return syscall(SYS_gettid); }

2013-09-17 17:36:46 2588

原创 动态链接库的使用

动态链接库(.so)可以让程序在运行时被加载,当so修改时,使用程序不需要重新编译就可以使用。本文介绍几个函数,讲述so的加载和方法调用。void * dlopen( const char * pathname, int mode);以指定模式打开某动态链接库文件,返回句柄。模式有:RTLD_LAZY, RTLD_NOW; RTLD_GLOBAL, RTLD_LOACAL;RTLD_NOD

2013-09-06 17:46:43 995

原创 MySQL记录

1.unixtime和可读时间的转换unixtime是距"1970-01-01 08:00:00"的时间秒数unixtime -> readableselect from_unixtime(double,format)readable -> unixtimeselect unix_timestamp(date)例子:select UNIX_TIMESTAMP('1997

2013-09-06 15:30:30 831

原创 mysql C API的使用

《MySQL++简介》介绍了如何使用C++来访问mysql,本文记录下使用C API访问mysql,mysql++就是对本文介绍的C-API的封装。常用函数(名字就能告诉我们用法):MYSQL * mysql_init(MYSQL *mysql)int mysql_options(MYSQL *mysql,enum mysql_option option, c

2013-07-09 16:29:27 1369

原创 Linux多线程系列-2-条件变量的使用(线程安全队列的实现)

多线程情况下,往往需要使用互斥变量来实现线程间的同步,实现资源正确共享。linux下使用如下变量和函数//条件变量pthread_cond_tint pthread_cond_init (pthread_cond_t *c, const pthread_condattr_t *a)int pthread_cond_wait (pthread_cond_t *c, pthread_mu

2013-07-09 14:49:58 2758

原创 Linux网络编程系列-套接口选项控制

获取和设置套接口选项的方法有:getsockopt/setsockoptfcntlioctlgetsockopt/setsockopt这两个函数仅用于套接口(socket)的设置,另外两个函数可以对任意的文件描述符进行设置。#includeint getsockopt(int sockfd, int level, int optname, void* optval, sock

2013-07-09 13:46:51 1255

原创 FastCGI介绍

CGI(Common Gateway Interface)公共网关接口,是HTTP服务器与其他程序通信的工具。FastCGI是一个long-live型的CGI,支持分布式计算,它将CGI解释器进程保持在内存中并因此获得较高的性能。FastCGI工作方式是接受Web服务器的请求,以HTTP Request的方式进行响应,实现了应用程序与Web服务器的分离。它的使用需要在Web服务器中安装支持组件

2013-06-06 17:31:42 7500

原创 gcc/g++分析

GCC(GNU Compiler Collection,GNU编译器集合),是一套由 GNU 开发的编程语言编译器。GCC原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如Linux、BSD、Mac OS X等)采纳为标准的编译器,现在已可处理C、C++、 Fortran、Pascal、Objective-C、Java, 以及 Ada与其他语言。g++是针对GCC针对C++

2013-05-10 11:12:22 1032

转载 C/C++堆和栈介绍

一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静态

2013-05-10 10:24:54 818

原创 linux网络编程系列-select和epoll的区别

select和epoll都用于监听套接口描述字上是否有事件发生,实现I/O复用select(轮询)#include #include int select (int maxfdpl, fd_set* readset, fd_set* writeset, fd_set* exceptset, const struct timeval* timeout)调用时轮询一次所有描述字,超时时

2013-05-09 21:07:53 1065

原创 linux网络编程系列-TCP及常用接口分析

TCP编程示例图:头文件:常用头文件"arpa/inet.h", "sys/socket.h","netinet/in.h"函数原型:int socket(int family, int type, int protocol)family:通信协议族,IP protocol family为AF_INET(PF_INET),值是2;type:套接字类型(连接类型

2013-05-09 11:04:39 1092

原创 Linux网络编程系列-TCP状态分析

TCP是有状态的,通讯双方需要维护一个状态记录连接情况。本文记录TCP的连接、关闭中的各状态,及其转换情况。

2013-05-09 10:17:49 935

转载 多进程和多线程的选择

先转载一位仁兄的看法,很好。关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有这么简单了,选的不好,会让你深受其害。经常在网络上看到有的XDJM问“多进程好还是多线程好?”、“Linux下用多进程还是多线程?”等等期望一劳永逸的问题,我只能说:没有最好,只有更好。根据实际

2013-05-07 17:24:18 999

原创 zk系列-c++下zookeeper使用实例

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务。分布式应用可以使用它来实现诸如:统一命名服务、配置管理、分布式锁服务、集群管理等功能。公司常用到的是Java服务集群的管理。1.函数介绍//create a handle to used communicate with zookeeperzhandle_t *zookeeper_init(const char *hos

2013-04-27 17:53:34 19038 7

原创 boost锁介绍

boost thread库提供了三种级别的锁:boost::shared_lock(读锁),boost::upgrade_lock(和读锁不互斥,与写锁、upgrade_loc互斥),boost::unique_loc(写锁)五种互斥变量:mutex:独占式互斥量shared_mutex: 读共享/写互斥的共享互斥量recursive_mutex: 递归互斥量timed_m

2013-04-27 16:59:58 1390

原创 python使用protobuf

1.安装protobuf编译器./configure --prefix=dist; make; make install; 配置bin路径2.进入解压后的python目录下参考README.txt,python setup.py install3.使用message RowProto {required uint32 null_map = 1;repeated string

2013-03-28 10:39:10 22482 1

转载 Google Protocol Buffer 介绍

Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件。他们用于 RPC 系统和持续数据存储系统。Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 R

2013-03-27 14:27:18 1643

原创 Linux多线程系列-1-线程使用

linux下常用线程库为POSIX线程(pthread),可运行于Solaris、FreeBSD、Linux 等平台,Windows平台亦有pthread-win32可供使用。常用类型:#include pthread_t pthread_attr_tpthread_t代表线程ID,不同平台是不同的数据类型,如Linux 2.4.22用无符号长整型表示pthread_t,Sol

2013-02-07 10:15:23 1020

原创 log4cplus使用

log4cplus is a simple to use C++ logging API providing thread-safe, flexible, and arbitrarily granular control over log management and configuration. It is modelled after the Java log4j API. 下载地址http:

2013-02-06 18:09:56 2016

原创 boost multi_index_container 基本介绍

Boost Multi-index Containers Library定义了multi_index_container模板类,可以从不同的维度建索引、排序和存取。如上图,容器multi_index_container分别从shape,number和sequenced(默认插入的顺序)三个维度对元素进行管理。使用如下:#include #include #include

2013-01-08 18:41:42 9655 3

原创 c++日期和时间相关操作-<time.h>(ctime)

time.h(ctime)是c time library,定义了获取和操作日期和时间的函数。1. 结构typedef long time_t;time_t是长整型,表示的是距(1970年,1月1日00:00:00)的秒数,常常通过time函数获得。struct tm {int tm_sec; //秒 0-59(一般)int tm_min; //分 0-59int tm

2013-01-04 11:48:40 16410

原创 消息队列-zmq常用通信模式

zmq是一个消息队列。可以在进程内、进程间、TCP、多播中,以消息为单位传输数据,而不是socket的字节流。官方主页上有下载、使用、文档,蛮全的。常用模式有:Request-Reply,Publish-Subscribe,Parallel Pipeline。Request-Replyrequestzmq::context_t context (1);zmq::socket_

2012-12-27 18:23:40 35064

原创 Linux网络编程系列-获取机器名和ip

#include #include using namespace std;int main() { int result = 0; char hostName[100]; struct hostent* host = NULL; result = gethostname(hostName, 100); host = gethostbyname(hostName);

2012-12-19 17:56:14 2737

原创 C++发送邮件-jwsmpt

jwSMTP是用于发送邮件的C++库,支持附件、多接收者,抄送等功能。下载地址jwSMTP.1.安装tar, ./configure配置安装路径,make, make install。2.使用#include jwsmtp::mailer mail_;mail_.setsender(from_);mail_.username(from_);mail_.password(pw

2012-12-07 10:01:05 1409

Flex-IFrame

适用于Flex3/4,用于在Flex中嵌入网页

2012-03-16

HDFS存取实例(java)

hdfs 上传 下载 客户端 代码 java

2011-08-29

Tuscany SCA与Spring、Hibernate整合实例-简洁方法

Tuscany SCA与Spring、Hibernate整合实例-简洁方法。为了控制大小,把项目lib中的jar都删了...

2011-07-19

Flex_Spring3_Hibernate3整合Demo

Flex_Spring3_Hibernate3整合Demo,使用RemoteObject调用java代码。主要配置为applicationContext.xml,web.xml,services-config.xml,remoting-config.xml。另外要引入SpringFactory类。

2011-07-18

json-rpc-java-1.0源代码

json处理源代码,如jsonArray,JsonObject。使用json远程调用源代码。

2011-05-03

lockdir 文件加密

文件加密 u盘加密,不建议下载,上传只为自己使用方便

2010-12-30

Java Servlet API

Java Servlet API chm格式,中文的,chm格式,下载后要是不能打开,就更改格式,重名为**.chm

2010-09-29

maven2快速入门教程

maven教程,里面有三个,全为txt格式,用于快速了解、使用maven

2010-07-16

软考2008下半年系统分析师下午试题I分析与解答.rar

软考2008下半年系统分析师下午试题I分析与解答.rar

2010-05-23

软考2008下半年系统分析师下午试题Ⅱ分析与解答.rar

软考2008下半年系统分析师下午试题Ⅱ分析与解答.rar

2010-05-23

软考2008下半年系统分析师上午试题分析与解答.rar

软考2008下半年系统分析师上午试题分析与解答.rar

2010-05-23

2008年上半年系统分析师试题分析与解答.rar

2008年上半年系统分析师试题分析与解答.rar

2010-05-23

2007年系分下半年试题分析与解答.rar

2007年系分下半年试题分析与解答.rar 系统分析师 下半年 试题 答案

2010-05-23

系统分析师考试历年试题及解答合.CHM

系统分析师考试历年试题及解答合.CHM 到06年

2010-05-23

2007年系分上半年试题分析与解答.rar

2007年 系分 上半年 试题 分析 解答 答案

2010-05-23

系统分析师经典论文五篇.doc

系统分析师经典论文五篇.doc 五篇系统分析师论文 借鉴用

2010-05-23

1996--2009系统分析师试题.rar

系统分析师历年试题 真题 部分为word,部分是pdf

2010-05-23

系统分析师经典教材_Word版

系统分析师经典教材_Word版有计算机系统知识、程序语言、操作系统等等

2010-05-23

软件设计师考试历年试题及解答合订本.CHM

软件设计师考试历年试题及解答合订本.CHM

2010-03-01

软件设计师考试同步辅导下午科目

软件设计师考试同步辅导下午科目 电子书 pdf格式

2010-03-01

软件设计师考试同步辅导上午科目

软件设计师考试同步辅导上午科目 电子书 pdf格式

2010-03-01

计算机考试经典英文词汇荟萃

计算机 考试 经典英文 词汇 荟萃

2009-05-22

RPG 教程 源代码

RPG 教程 源代码 游戏开发 Directx 对于有C++基础的人很快就可以进入RPG的实战开发。这教程好!打开压缩包里面的html即可开始教程阅览!强烈推荐那些想写游戏,而又不知所措的人!

2009-05-06

DirectX 9入门教程 Beginning Directtx 9

DirectX 9入门教程 Beginning Directtx 9 英语教材 全面介绍Directx9, 有助于渗入理解

2009-05-06

Directx 教程

Directx 教程 相当实用 便于初学者入门 阅读方便

2009-05-06

ssd8 选择题 choice

卡内基教程 ssd8 全部选择题 choice

2009-05-06

c++ 3D 游戏开发实例教程 chm

c++ 3D 游戏开发实例教程 chm文档第一回:开发环境 第二回:3D基本概念 第三回:第一个D3D程序 第四回:渲染顶点 第五回:渲染索引顶点 第六回:摄象机 第七回:灯光 第八回:纹理 第九回:3D模型(.x)

2009-04-10

vc++ 开发五子棋 视屏

vc++ 开发五子棋 视屏 讲述详细,有源代码

2009-04-10

网络游戏开发 英文教材 chm

网络游戏开发 chm 文档 英文教程 WinSock2 游戏编程 网络游戏开发 101 异步 Sockets 编程指南   多用户的服务器/客户模式聊天工具的开发   TCP/IP 协议介绍摘要   如何设计一个多人游戏   多人游戏的本质   制作一套网络消息引擎   使用统计学来预测网络上游戏者的动作   如何排除网络延迟

2009-04-10

C++ 游戏开发 教程

C++ 游戏开发 教程 实例 源代码 各种经常使用到的开发案例,代码详细 chm文档

2009-04-10

ssd4 exercise 8

卡内基教程 练习8 ssd4 exercise8

2009-04-10

ssd4 exercise 7

ssd4 exercise 7 卡内基4练习7

2009-04-10

HTTP1.1与HTTP1.0的比较

HTTP1.1与HTTP1.0的比较 中文的 你可以翻译成英文嘛

2009-04-10

java 反编译工具 jad和 用法

java 反编译工具 jad 安装文件和使用方法

2009-04-05

ssd8 卡内基 教程 chm

ssd8 卡内基梅隆 教程 chm文档 英语

2009-04-05

软件设计师考试大纲与培训指南(2009版)

软件设计师考试大纲与培训指南 (2009版) pdf

2009-02-18

c# 只允许运行一个实例

c# 只允许运行一个实例 代码 和 可运行程序

2009-02-16

2008下半年软件设计师考试试卷和答案

2008 下半年 软件设计师考试 试卷和答案 总共两张试卷,一个专家答案,pdf格式

2009-02-16

2008年上半年系统分析试卷

系统分析师试卷 2008年上半年 总共有三部分 选择 案例 论文

2009-02-16

java 图形界面美化

java图形界面的美化方法,里面有几个皮肤,以及皮肤的使用,和皮肤下载的地址

2008-12-27

空空如也

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

TA关注的人

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