- 博客(10)
- 资源 (17)
- 收藏
- 关注
原创 循环移位算法
将一个含有n个元素的数组向右循环移动k位,要求时间复杂度是O(n),且只能使用两个额外的变量,这是在微软的编程之美上看到的一道题分析:比如数组 1 2 3 4循环右移1位 将变成 4 1 2 3, 观察可知1 2 3 的顺序在移位前后没有改变,只是和4的位置交换了一下,所以等同于1 2 3 4 先划分为两部分1 2 3 | 4,然后将1 2 3逆序,再将4 逆序 得到 3 2 1 4,
2013-07-22 20:08:29 5014
原创 深入浅出C/C++中的正则表达式库
一、深入浅出C/C++中的正则表达式库(一)——GNU Regex Library写在前面: 本文是面向有正则表达式基础的读者朋友的,如果你还不知道正则表达式是什么,请先到这里学习一下 :http://en.wikipedia.org/wiki/Regular_expression。正则表达式(Regular Expressions),又被称为regex或regexp,是一种十
2013-07-17 10:12:59 7388
转载 详解Google-ProtoBuf中结构化数据的编码
本文的主要内容是google protobuf中序列化数据时用到的编码规则,但是,介绍具体的编码规则之前,我觉得有必要先简单介绍一下google protobuf。因此,本文首先会介绍一些google protobuf相关的内容,让读者朋友对google protobuf有一个初步的印象,然后,再开始进入正题—-深入浅出地介绍google protobuf中用到的编码规则。下面言归正传,开始今天的
2013-07-16 16:57:48 1620
原创 google ProtoBuf开发者指南
ProtoBuf开发者指南译者:gashero目录1 概览1.1 什么是protocol buffer1.2 他们如何工作1.3 为什么不用XML?1.4 听起来像是为我的解决方案,如何开始?1.5 一点历史2 语言指导2.1 定义一个消息类型2.2 值类型2.3 可选字段与缺省值2.4
2013-07-16 15:58:48 2482
原创 Linux线程池
一、线程池大多数的网络服务器,包括Web服务器都具有一个特点,就是单位时间内必须处理数目巨大的连接请求,但是处理时间却是比较短的。在传统的多线程服务器模型中是这样实现的:一旦有个请求到达,就创建一个新的线程,由该线程执行任务,任务执行完毕之后,线程就退出。这就是"即时创建,即时销毁"的策略。尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是执行时间较短,而且执行次
2013-07-15 18:45:44 2065
转载 可伸缩多线程任务队列
在我们的工作中,我们经常需要异步执行一些任务,下面介绍的这个可伸缩多线程队列,可满足我们的需求。 出自:http://www.codeproject.com/Articles/4148/Multithreaded-Job-Queue,主要有以下几个功能: 1、任务队列是多线程,许多任务可以异步进行,任务队列使用线程池来执行任务。 2、任务队列支持优先级,优先级
2013-07-15 18:39:29 1793
原创 Python中的getattr()函数详解
最近看Dive into python第四章自省中提到getattr()函数,作为一个内建函数平时自己没怎么用过所以也不太理解这个函数的一些用法看了下函数本身的docgetattr(object, name[, default]) -> valueGet a named attribute from an object; getattr(x, 'y') is equival
2013-07-12 15:45:34 1633
转载 How To Use Linux epoll with Python
ContentsIntroductionBlocking Socket Programming ExamplesBenefits of Asynchronous Sockets and Linux epollAsynchronous Socket Programming Examples with epollPerformance ConsiderationsSource Code
2013-07-12 09:53:28 1080
原创 fstream的使用方法详解
ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间; 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器( 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout2、析取器(>>)
2013-07-05 11:00:08 2888
转载 Linux下面的线程锁,条件变量以及信号量的使用
一) 线程锁1) 只能用于"锁"住临界代码区域2) 一个线程加的锁必须由该线程解锁.锁几乎是我们学习同步时最开始接触到的一个策略,也是最简单, 最直白的策略.二) 条件变量,与锁不同, 条件变量用于等待某个条件被触发1) 大体使用的伪码:// 线程一代码pthread_mutex_lock(&mutex);// 设置条件为truepthread_co
2013-07-04 16:33:46 1601
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人