自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

luotuo44的专栏

千里之行始于足下

原创 C++11多线程

线程例子程序需要从main函数开始,同样线程也是从某个函数开始的(这个函数下文称为线程函数)。和pthread_create一样,C++11提供的线程类std::thread,在创建类变量的时候就产生一个线程,因此需要在std::thread的构造函数中传入线程函数作为参数。得益于C++11支持可...

2017-04-08 12:52:56

阅读数 4627

评论数 1

原创 用AVCodecParameters代替AVCodecContext

AVCodecParameters使用在高版本的ffmpeg库中使用AVStream::codec成员时,编译和运行时都出现一堆警告:

2017-02-16 00:12:19

阅读数 10362

评论数 0

原创 C++11时间详解

转载请注明出处:        C++ 11增加了三个与时间相关的类型:时间段、时钟、时间点。 以史为鉴        现有的系统API中,时间太过于碎片化了。有time_t(秒)、struct timeval(微秒)、struct timespec(纳秒)这几个时间单位,他们的接口非常不统...

2015-07-14 00:08:50

阅读数 12331

评论数 1

原创 C++ 11 右值引用以及std::move

新类型:          int和int&是什么?都是类型。int是整数类型,int&则是整数引用类型。同样int&&也是一个类型。两个引号&&是C++ 11提出的一个新的引用类型。记住,这是一个新的类型。默念10次吧。如果你记住这个新类型,那么...

2015-07-07 00:05:38

阅读数 9046

评论数 4

原创 DNS查询流程简介

转载请注明出处:         DNS(domain name system),读者们或多或少都听过,就是可以将域名转换给IP的一个系统。使得我们只需记住域名而非IP就能访问某个网站。当我们在浏览器里面输入一个网址时,浏览器会向本地DNS服务器发出查询请求,本地DNS服务器会把网址对应的...

2015-05-07 00:32:36

阅读数 4677

评论数 2

原创 memcached源码分析-----set命令处理流程

转载请注明出处:         前一篇博文以get命令为例子把整个处理流程简单讲述了一遍,本篇博文将以set命令详细讲述memcached的处理流程。具体的命令为“set tt 3 0 10”,并假设当然memcached服务器没有名为tt的item。 读取命令:      ...

2015-03-13 09:28:44

阅读数 3212

评论数 1

原创 memcached源码分析-----get命令处理流程

转载请注明出处:         本文以get命令为例子,探讨memcached是如何处理命令的。本文只是探讨memcached处理命令的工作流程,具体的代码细节在不影响阅读的前提下能省略的就省略、能取默认值就取默认值、内存是足够的(不需要动态申请空间就够用了)。涉及到数组、缓存区的就假...

2015-03-12 09:44:10

阅读数 2795

评论数 1

原创 memcached源码分析-----slab automove和slab rebalance

转载请注明出处: 需求:         考虑这样的一个情景:在一开始,由于业务原因向memcached存储大量长度为1KB的数据,也就是说memcached服务器进程里面有很多大小为1KB的item。现在由于业务调整需要存储大量10KB的数据,并且很少使用1KB的那些数据了。由于...

2015-01-22 09:56:35

阅读数 3452

评论数 4

原创 memcached源码分析-----item过期失效处理以及LRU爬虫

转载请注明出处:         温馨提示:本文用到了一些可以在启动memcached设置的全局变量。关于这些全局变量的含义可以参考《memcached启动参数详解》。对于这些全局变量,处理方式就像《如何阅读memcached源代码》所说的那样直接取其默认值。 过期失效处理:  ...

2015-01-21 09:46:41

阅读数 4936

评论数 4

原创 memcached源码分析-----item锁级别与item引用计数

转载请注明出处: 锁级别:         从前面的《扩展哈希表》知道:哈希表进行扩展时,有一个专门的线程负责将item数据从旧哈希表迁移到新哈希表(由此,也称这个线程为迁移线程)。此外,还有一些worker线程会时不时访问item(包括插入、删除和获取)。这些线程的对item所做的操...

2015-01-20 09:52:41

阅读数 2946

评论数 1

原创 memcached源码分析-----LRU队列与item结构体

转载请注明出处: LRU队列:         之前的《slab内存分配》博文已经说到一个slab class里面的所有slab分配器都只分配相同大小的item,不同的slab class分配不同大小的item。item结构体里面有一个slabs_clsid成员,用来指明自己是属于哪个...

2015-01-19 09:46:49

阅读数 5286

评论数 0

原创 memcached源码分析-----哈希表基本操作以及扩容过程

转载请注明出处:         温馨提示:本文用到了一些可以在启动memcached设置的全局变量。关于这些全局变量的含义可以参考《memcached启动参数详解》。对于这些全局变量,处理方式就像《如何阅读memcached源代码》所说的那样直接取其默认值。         assoc...

2015-01-16 10:14:25

阅读数 6151

评论数 5

原创 memcached源码分析-----slab内存分配器

转载请注明出处:         温馨提示:本文用到了一些可以在启动memcached设置的全局变量。关于这些全局变量的含义可以参考《memcached启动参数详解》。对于这些全局变量,处理方式就像《如何阅读memcached源代码》所说的那样直接取其默认值。 slab内存池分配器: ...

2015-01-15 10:16:57

阅读数 5944

评论数 2

原创 memcached源码分析-----网络模型

转载请注明出处: 半同步/半异步:         memcached使用半同步/半异步网络模型处理客户端的连接和通信。         半同步/半异步模型的基础设施:主线程创建多个子线程(这些子线程也称为worker线程),每一个线程都维持自己的事件循环,即每个线程都有自己的epoll,...

2015-01-14 09:59:20

阅读数 6354

评论数 8

原创 memcached源码分析-----memcached启动参数详解以及关键配置的默认值

本文将给出memcached启动时各个参数的详细解释以及一些关键配置的默认值。以便在分析memcached源码的时候好随时查看。当然也方便使用memcached时可以随时查看各个参数的含义。《如何阅读memcached源码》说到memcached有很多全局变量(也就是关键配置),这些全局变量会给

2015-01-13 10:37:00

阅读数 7173

评论数 0

原创 memcached源码分析-----安装、调试以及如何阅读memcached源码

转载请注明出处: 安装:         安装memcached之前要先安装Libevent。现在假定Libevent安装在/usr/local/libevent目录了。         因为memcached安装后不像Libevent那样,有一堆头文件和库文件。安装后的memcached...

2015-01-12 10:39:42

阅读数 4149

评论数 2

原创 有限域GF(2^8)的四则运算及拉格朗日插值

域的性质:         群和域在数学上的概念就不解释,可以参考维基百科。当然也可以参考《密码编码学与网络安全》这书的有限域一章。形象地说,域有这样一个性质:在加法和乘法上具有封闭性。也就是说对域中的元素进行加法或乘法运算后的结果仍然是域中的元素。有一点要注意,域里面的乘法和加法不一定是我们平...

2014-12-01 12:26:01

阅读数 26810

评论数 12

原创 Libevent使用例子,从简单到复杂

本文从简单到复杂,展示Libevent的使用

2014-09-29 15:17:55

阅读数 46961

评论数 25

原创 libevent编程疑难解答

前段时间阅读了libevent的源码。读完后,之前在使用libevent时的一些疑问都已经豁然开朗了。对于libevent源码的分析,可以到http://blog.csdn.net/luotuo44/article/category/2435521查看。 本文通过自问自答的形式,希望能帮助其他人解...

2014-09-25 10:46:53

阅读数 13720

评论数 5

原创 Qt跨线程发送信号与元数据

Qt的signals/slots是可以用在线程间的。由于事件循环(event loop)是在主线程完成的,所以在非主线程发送一个信号时,对应的槽函数将会由主线程执行。 熟悉多线程的读者应该都感受到这里会有一个微妙的问题。如果signals/slots的函数参数是一个自己定义的类型。比如自己定义...

2014-09-19 10:46:48

阅读数 9121

评论数 3

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