自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(128)
  • 收藏
  • 关注

转载 PHP CURL curl_setopt 参数

PHP CURL curl_setopt 参数bool curl_setopt (int ch, string option, mixed value)curl_setopt()函数将为一个CURL会话设置选项。option参数是你想要的设置,value是这个选项给定的值。下列选项的值将被作为长整形使用(在option参数中指定):    ?    CURLOPT_IN

2015-05-12 17:04:08 486

转载 php pack()函数详解与示例

pack和unpack在一般的程序中还真的不容易见到,但是如果你用过很久以前的php生成excel你就会知道了。他的excel的头就是pack出来的最近在尝试与C交互的时候又用上了这玩意,所以不得不再看看。其实就是C要求我一定要有包头。。。其实纯字符串也不错嘛。干嘛非得搞个包头呢?真纠结 .。手册上有pack与unpack的介绍,但都是英文的。。。   任何一款拥有sock

2015-05-12 17:00:03 599

转载 c++成员初始化列表

++成员初始化列表2009-03-20 14:50C++为类中提供类成员的初始化列表类对象的构造顺序是这样的:1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员2.进入构造函数后在构造函数中执行一般计算使用初始化列表有两个原因:1.必须这样做:        如果我们有一个类成员,它本身是一个类或者是一个结构,而且这个成员

2015-05-06 10:57:11 660

转载 linux下ab网站压力测试命令

ab网站压力测试命令的参数、输出结果的中文注解以前安装好APACHE总是不知道该如何测试APACHE的性能,现在总算找到一个测试工具了。就是APACHE自带的测试工具AB(apache benchmark).在APACHE的bin目录下。格式: ./ab [options] [http://]hostname[:port]/path参数:-n requests Number o

2015-05-05 12:49:33 649

转载 分布式应用程序架构

这是一个分布式应用程序架构的草图。仅作为Ice学习的一点小结。1)Client指的是我们通常意义上的客户端。比如在一个网页游戏中,它可以是以flash实现的网页客户端。2)GateWay指的是服务器端的通信模块(NetService)。它负责与客户端进行通信,同时它会在RegisterNode中读取相应的LogicServer注册表信息,继而将请求送达相应的逻辑层服务器

2015-05-05 09:51:24 718

转载 zk系列-c++下zookeeper使用实例

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

2015-04-30 12:12:28 2557 1

转载 ZooKeeper的简单操作

1 )使用 ls 命令来查看当前 ZooKeeper 中所包含的内容:[zk: 10.77.20.23:2181(CONNECTED) 1] ls /[zookeeper]2 )创建一个新的 znode ,使用 create /zk myData 。这个命令创建了一个新的 znode 节点“ zk ”以及与它关联的字符串:[zk: 10.77.20.23:2181(

2015-04-30 12:12:05 413

转载 zookeeper原理

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookee

2015-04-29 19:54:21 464

转载 boost库之ptree的ini配置文件解析

[cpp] view plaincopy// FirstTest.cpp : 定义控制台应用程序的入口点。  //ptree解析ini文件,get(treename, translator)  :translator类型实例  #include "stdafx.h"  #include     #include     #include     

2015-04-29 13:57:25 951

转载 libevent的使用

这篇文章介绍下libevent在socket异步编程中的应用。在一些对性能要求较高的网络应用程序中,为了防止程序阻塞在socket I/O操作上造成程序性能的下降,需要使用异步编程,即程序准备好读写的函数(或接口)并向系统注册,然后在需要的时候只向系统提交读写的请求之后就继续做自己的事情,实际的读写操作由系统在合适的时候调用我们程序注册的接口进行。异步编程会给一些程序猿带来一些理解和编写上的困难,

2015-04-28 12:21:14 429

转载 解决close_wait与time_wait

昨天解决了一个HttpClient调用错误导致的服务器异常,具体过程如下:http://blog.csdn.net/shootyou/article/details/6615051里头的分析过程有提到,通过查看服务器网络状态检测到服务器有大量的CLOSE_WAIT的状态。 在服务器的日常维护过程中,会经常用到下面的命令:netstat -n | awk '/^tcp

2015-04-24 11:53:05 494

转载 TCP状态转换图

注:主动、被动 与 服务器、客户端没有明确的对应关系。这个图N多人都知道,它排除和定位网络或系统故障时大有帮助,但是怎样牢牢地将这张图刻在脑中呢?那么你就一定要对这张图的每一个状态,及转换的过程有深刻 的认识,不能只停留在一知半解之中。下面对这张图的11种状态详细解析一下,以便加强记忆!不过在这之前,先回顾一下TCP建立连接的三次握手过程,以及 关闭连接的四次握手过程。1、建立连接

2015-04-24 11:48:08 623

转载 Linux下用netstat命令查看网络负载状况的一条语句

今天看到一条用 netstat 查看 Linux 网络状况的语句,如下:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'前面的 netstat -n是netstat的命令,Windows和Linux都可以用,结果显示内容差不多后面的 awk'/^tcp/ {++S[$NF]} END {

2015-04-23 11:36:39 2327

转载 使用 Google gflags 简化命令行参数处理

(本文章仅适用于C++程序)写服务程序时,如果需要提供命令行参数。传统的方法是手工解析argv参数,或者使用getopt函数。两种方法都比较费劲。使用Google gflags可以大大简化命令行参数处理。安装gflag从官方地址http://code.google.com/p/google-gflags/下载gflags并安装。比如我下载的是1.5版本。[yichi@y

2015-04-22 14:22:53 738

转载 google log的使用

log是Google维护的一个开源的C++ log库,使用Free BSC licenseglog官方地址:https://code.google.com/p/google-glog/glog作用:日志库安装方法./configuremakemake installHello worldfoo_1.cpp[

2015-04-22 14:06:26 2110

转载 netstat 命令简介

简介Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义执行netstat后,其输出结果为Active Internet connections (w/o servers)Proto Re

2015-04-17 17:40:21 90

转载 编译选项-l,-L,-I

参考文章;http://hi.baidu.com/njuhappy/item/83f8bfbd7c5d3162bb0e1237我们用gcc编译程序时,可能会用到“-I”(大写i),“-L”(大写l),“-l”(小写l)等参数,下面做个记录:例:gcc -o hello hello.c -I /home/hello/include -L /home/hello/lib -

2015-04-17 15:01:51 881

转载 谷歌技术"三宝"之BigTable

2006年的OSDI有两篇google的论文,分别是BigTable和Chubby。Chubby是一个分布式锁服务,基于Paxos算法;BigTable是一个用于管理结构化数据的分布式存储系统,构建在GFS、Chubby、SSTable等google技术之上。相当多的google应用使用了BigTable,比如Google Earth和Google Analytics,因此它和GFS、MapRed

2015-04-08 14:16:19 526

转载 谷歌技术"三宝"之谷歌文件系统

题记:初学分布式文件系统,写篇博客加深点印象。GFS的特点是使用一堆廉价的商用计算机支撑大规模数据处理。虽然"The Google File System " 是03年发表的老文章了,但现在仍被广泛讨论,其对后来的分布式文件系统设计具有指导意义。然而,作者在设计GFS时,是基于过去很多实验观察的,并提出了很多假设作为前提,这等于给出了一个GFS的应用场景。所以我们自己在设计分布式系统时,一

2015-04-08 14:14:03 715

转载 谷歌技术"三宝"之MapReduce

江湖传说永流传:谷歌技术有"三宝",GFS、MapReduce和大表(BigTable)!谷歌在03到06年间连续发表了三篇很有影响力的文章,分别是03年SOSP的GFS,04年OSDI的MapReduce,和06年OSDI的BigTable。SOSP和OSDI都是操作系统领域的顶级会议,在计算机学会推荐会议里属于A类。SOSP在单数年举办,而OSDI在双数年举办。那么这篇博客就来

2015-04-08 14:11:46 475

转载 c++ stl容器

C++中有两种类型的容器:顺序容器和关联容器。顺序容器主要有vector、list、deque等。其中vector表示一段连续的内存,基于数组实现,list表示非连续的内存,基于链表实现,deque与vector类似,但是对首元素提供插入和删除的双向支持。关联容器主要有map和set。map是key-value形式,set是单值。map和set只能存放唯一的key,multimap和multise

2015-04-07 18:17:56 781

转载 thrift框架 序列化及反序列化解析

本文炒冷饭.说实话,一直挺看好Thrift,支持的语言又多,代码写的有很清晰,效率又不低,为啥研究Protocol Buffer的人那么多.不管那么多了....Thrift中的对象序列化是我很看好的东西,他用compiler+类库,让你高效的完成任务,而且可以少犯错误.试想,有谁可以保证自己设计的对象,不会再改变呢?数据库的schema改了,你可以改改查询语句,但是如果你对象改了,之前序列

2015-04-07 16:20:58 1450

转载 Hadoop c++开发

假设你有上百G的数据,你要统计出这些数据中,含有某些你感兴趣的内容的数据的有多少条,你会怎么做?在硬件条件允许的情况下,用hadoop并行计算是一个不错的选择。为了使本文得以清晰地说明,我们不妨假设如下的情况:我们有100G的数据,分别保存在5个文件中,它们位于 /data/ 目录下。这5个数据文件的内容均为相同的格式,即,文件的内容大致如下:ABCDSDFKJ

2015-04-02 16:57:29 394

转载 c++实现线程池

线程池:简单地说,线程池 就是预先创建好一批线程,方便、快速地处理收到的业务。比起传统的到来一个任务,即时创建一个线程来处理,节省了线程的创建和回收的开销,响应更快,效率更高。在linux中,使用的是posix线程库,首先介绍几个常用的函数:1 线程的创建和取消函数  pthread_create 创建线程  pthread_join  等待线程结束  pthread_ca

2015-04-02 14:22:28 568

转载 pthread_cond_wait()函数的理解

pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t*mutex)函数传入的参数mutex用于保护条件,因为我们在调用pthread_cond_wait时,如果条件不成立我们就进入阻塞,但是进入阻塞这个期间,如果条件变量改变了的话,那我们就漏掉了这个条件。因为这个线程还没有放到等待队列上,所以调用pthread_cond_wait前

2015-04-02 13:56:52 483

转载 剖析STL容器遍历删除时诡异的erase(iter++)

剖析STL容器遍历删除时诡异的erase(iter++)---------------------------------------------------------------------STL中结点类容器(如:list,hash_map)遍历时进行删除时,需要这样做:for(list::iterator iter = m_list.begin(); iter != m_li

2015-04-01 16:35:00 1926

原创 使用python发送http请求代码

1 #!/usr/bin/env python  2 #coding=utf8  3         4 import httplib, urllib   5 httpClient = None  6 try:   7     #params = urllib.urlencode({'name': 'tom', 'age': 22})  8     params1 =

2015-03-30 17:41:59 486

转载 pthread_barrier_init,pthread_barrier_wait简介

pthread_barrier 系列函数在中定义,用于多线程的同步,它包含三个函数:      --pthread_barrier_init()      --pthread_barrier_wait()      --pthread_barrier_destroy()那么pthread_barrier_*是用来做什么的?这三个函数又怎么配合使用呢?

2015-03-27 15:54:14 753

转载 C++ string类的常用用法

通过在网站上的资料搜集,得到了很多关于string类用法的文档,通过对这些资料的整理和加入一些自己的代码,就得出了一份比较完整的关于string类函数有哪些和怎样用的文档了!下面先罗列出string类的函数有哪一些,然后再罗列出函数的原型,最后到代码的实现标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用。现将具体用法的一部分罗列如下,只起一个抛砖

2015-03-27 14:31:02 335

转载 pthread_join函数及linux线程

是从网上搜索到的,为了方便以后查询,所以就把它拿到自己的空间里来了。谢谢原作者!!^^ pthread_join函数及linux线程pthread_join使一个线程等待另一个线程结束。 代码中如果没有pthread_join主线程会很快结束从而使整个进程结束,从而使创建的线程没有机会开始执行就结束了。加入pthread_join后,主线程会一直等待直到等待的线程结束自己才结束

2015-03-27 14:04:50 421

转载 Linux多线程编程实例解析

Linux系统下的多线程遵循POSIX线程接口,称为 pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。顺便说一下,Linux 下pthread的实现是通过系统调用clone()来实现的。clone()是 Linux所特有的系统调用,它的使用方式类似fork,关于clone()的详细情况,有兴趣的读者可以去查看有关文档说明。下

2015-03-27 11:02:09 417

转载 thrift C++做server, C++,python, java做Client例子

一、安装我机器上已经安装好了 thrift-0.9.1二、示例编辑demo.thrift文件,内容如下:struct UserProfile{        1:i32 id, //注意这里是逗号,而不是分号        2:string name,        3:string blurb} //这里没有分号 servi

2015-03-26 13:58:32 957

转载 类成员的const, static修饰

Const修饰:先说说被const的单独修饰成员吧,const单独修饰的成员只允许被初始化一次,先看下面const成员的特点吧:       const int x;   const string str;       const char arr[10]; // 喔,不允许声明数组       ……       Const成员的初始化只能放在构造函数的初始化参数列表中,放

2015-02-27 15:08:51 348

转载 nginx对keepalive和pipeline请求处理分析

原创文章,转载请注明: 转载自pagefault本文链接地址: nginx对keepalive和pipeline请求处理分析这次主要来看nginx中对keepalive和pipeline的处理,这里概念就不用介绍了。直接来看nginx是如何来做的。首先来看keepalive的处理。我们知道http 1.1中keepalive是默认的,除非客户端显式的指定connect头

2015-01-29 11:06:36 935

转载 ngx_http_upstream_keepalive_module原理分析

我们知道针对后端的keepalive是通过nginx.conf配置文件来指定的,例如     upstream resins{        server 61.135.250.217:6800;        keepalive 1024;    } nginx在读取配置文件的时候,就会执行指令相应的函数,查看ngx_http_upstream_kee

2015-01-25 22:41:04 625

转载 教你透彻了解红黑树

推荐阅读:Left-Leaning Red-Black Trees, Dagstuhl Workshop on Data Structures, Wadern, Germany, February, 2008. 直接下载:http://www.cs.princeton.edu/~rs/talks/LLRB/RedBlack.pdf------------------------

2014-12-02 15:25:51 480

转载 KMP算法

引记    此前一天,一位MS的朋友邀我一起去与他讨论快速排序,红黑树,字典树,B树、后缀树,包括KMP算法,唯独在讲解KMP算法的时候,言语磕磕碰碰,我想,原因有二:1、博客内的东西不常回顾,忘了不少;2、便是我对KMP算法的理解还不够彻底,自不用说讲解自如,运用自如了。所以,特再写本篇文章。由于此前,个人已经写过关于KMP算法的两篇文章,所以,本文名为:KMP算法之总结篇。 

2014-12-01 10:45:57 556

转载 RCU简介

简介        RCU(Read-Copy Update)是数据同步的一种方式,在当前的Linux内核中发挥着重要的作用。RCU主要针对的数据对象是链表,目的是提高遍历读取数据的效率,为了达到目的使用RCU机制读取数据的时候不对链表进行耗时的加锁操作。这样在同一时间可以有多个线程同时读取该链表,并且允许一个线程对链表进行修改(修改的时候,需要加锁)。RCU适用于需要频繁的读取数据,而相

2014-11-26 14:44:23 1471

转载 算法复杂度计算

函数代码之时代复杂度计算:http://hi.baidu.com/dbfr2011818/item/f99fe7df0d65471bd68ed0ee定义:如果一个问题的规模是n,解这一问题的某一算法所需要的时间为T(n),它是n的某一函数 T(n)称为这一算法的“时间复杂性”。     求解算法的时间复杂度的具体步骤是:[1] 找出算法中的基本语句:

2014-11-24 17:25:40 467

转载 [C++对象模型][7]单继承与虚函数表

一 单继承1) 代码:Code#include iostream>using namespace std;class A{public:    void f1(){cout  "A::f1"  endl;}    void f2(){cout  "A::f2"  endl;}    virtual void v1(){cout  "A::v1

2014-11-11 11:03:58 476

空空如也

空空如也

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

TA关注的人

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