自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (7)
  • 收藏
  • 关注

原创 Memcached线程模型分析

介绍Memcached中多线程如何实现,线程之间如何通信等问题

2015-08-30 22:30:01 2037

原创 Memcached概述

说明:以往阅读源码,总是想把每个文件、每行代码搞清楚,甚至不放过宏定义。个人认为这是“捡了芝麻,丢了西瓜”。阅读源代码,学习其设计方法和思想,了解设计思路是主要的;而不是通过阅读源代码学习语言用法,能学习固然好,但是在精力有限时,要把精力主要放在阅读代码的初衷上。在阅读源码之前,先对Memcached的工作流程做了解,这样阅读起来事半功倍。Memcached使用Libevent

2015-08-29 22:42:39 986

原创 Memcached介绍和安装

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。 参考:百度百科-Memcached介绍1、首

2015-08-28 23:07:37 1114

原创 Iterator模式

STL中的集合都有Iterator,Iterator模式的作用是遍历集合中的元素。它的实现原理为把遍历封装到一个类中进行(Iterator类),这样避免了暴露这个聚合对象内部。

2015-08-27 21:57:50 1271

原创 gdb调试多线程

gdb使用与调试多线程

2015-08-25 22:54:52 13437 1

原创 线程封装

Linux下原始的API使用起来不方便,为了便于使用,尝试封装线程相关API。看了《Linux多线程服务端编程》,陈硕是基于对象来封装的,使用了boost::bind来创建函数对象,把函数对象作为线程运行的函数。我这次尝试面向对象的封装,创建一个线程基类,子类继承这个基类,实现线程运行的主体函数即可。

2015-08-23 22:25:26 1948 1

原创 无锁编程:lock-free原理

介绍了无锁编程和ABA问题

2015-08-22 23:55:06 3621

原创 Libevent源码分析-timer和signal处理

libevent中实现定时器和信号的方式

2015-08-21 22:53:20 6652 5

原创 Libevent源码分析-event处理流程

event处理流程Libevent处理时间的大概流程为 1、设置event_base(即初始化Reactor) 2、设置event事件(初始化event) 3、将event和event_base关联(将event注册到event_base) 4、进入循环,等待事件 5、事件发生,处理事件。

2015-08-20 22:59:45 4239

原创 Libevent源码分析-event_base

event_base数据结构初始化event_base相关接口

2015-08-20 10:46:07 2537

原创 Chain of Responsibility模式

消息传递是面向对象开发中经常用到的机制,例如异常的传递,如果当前函数/类无法处理异常,可以将其抛到上一层。消息传递类似,如果一个类收到消息,如果当前类无法处理,可以将消息按照预先定义好的路径传递下去,直到有类可以处理这个消息。这就是Chain of Responsibility模式。

2015-08-19 22:34:15 1038

原创 libevent源码分析-event

1、event结构2、event相关接口3、Libevent对event的管理

2015-08-17 22:50:32 1842

原创 libevent源代码分析-介绍、安装、使用

Libevent介绍及安装,以及一个使用例子

2015-08-16 23:55:06 7158 5

原创 Visitor模式

在开发时有时会遇到需求变动,这样就要经常去修改已有的设计。比较常见的是在实现好的类中添加新方法满足客户新需求。这时可以使用Visitor模式。

2015-08-15 23:24:59 1212

原创 《STL源码剖析》--next_permutation函数

STL中提供了2个计算排列组合关系的算法。分别是next_permucation和prev_permutaion。next_permutation是用来计算下一个(next)字典序排列的组合,而prev_permutation用来计算上一个(prev)字典序的排列组合。这小节看一下next_permutation

2015-08-13 23:13:30 2336

原创 Command模式

在开发中,有时需要向对象发送请求,但是不知道请求的接受者是谁,被请求的操作是什么。这时可以使用command模式。Command模式将请求封装到一个对象(Command)中,并将请求的接受者存放到具体的ConcreteCommand类中的Receiveer中。这样实现了操作的对象和操作的具体实现之间的解耦。

2015-08-12 22:37:35 1462

原创 muduo总结

总结说的有的过大,算是对自己学习的一个总结,后续会不断补充。暂定为Reactor模型总结和使用的技术总结

2015-08-11 23:14:35 3954 3

原创 muduo::Connector、TcpClient分析

Connector用来发起连接,TcpClient封装了Connector方便编写客户端程序

2015-08-10 22:41:22 2921

原创 muduo::TcpConnection分析

muduo::TcpConnection分析

2015-08-09 23:05:16 3560

原创 muduo::Acceptor、TcpServer分析

muduo网络库中,Acceptor类和TcpServer类。Acceptor包含在TcpServer中,TcpServer相当于main reactor,其中封装了EventLoopThreadPool(相当于sub reactor)。

2015-08-08 22:26:15 1917

原创 muduo::Buffer分析

非阻塞的网络编程中,在应用层都需要使用Buffer,这节分析Buffer设计。 Buffer的作用就是暂时存储数据。当向Buffer写入数据后,Buffer可写入空间减小,可读空间增大;取走数据后变化相反。

2015-08-07 20:24:51 2997

原创 muduo::TimerId、Timer、TimerQueue分析

Linux时间函数介绍;之后介绍了用于select/poll/epoll的timerfd;后面介绍了基于timerfd实现的定时器以及定时器队列。

2015-08-06 23:08:04 3230

原创 muduo::EventLoopThread、EventLoopThreadPool分析

muduo的并发模型为one loop per thread+ threadpool。为了方便使用,muduo封装了EventLoop和Thread为EventLoopThread,为了方便使用线程池,又把EventLoopThread封装为EventLoopThreadPool。

2015-08-05 23:40:28 2494

原创 muduo:Channel、Poller分析

Channel是Reactor结构中的“事件”,它自始至终都属于一个EventLoop,负责一个文件描述符的IO事件。Poller是实现了IO复用,是个虚基类。

2015-08-04 23:17:30 2501

原创 muduo::EventLoop分析

EventLoop是整个Reactor的核心。本节分析EventLoop的源码

2015-08-03 23:57:22 3970

原创 muduo整体介绍及Echo服务器流程分析

这节介绍了muduo各个类和.h .cc文件的作用,之后以Echo服务器为例介绍了muduo处理事件的大概流程

2015-08-02 12:45:31 2680

原创 Memento模式

一个类有很多状态,在开发时有时会遇到想把这个类恢复到之前某一个状态(例如撤销),这时就用到了Memento模式。Memento模式思想比较简单,就是创建一个类Memento对象来记录另一个类的状态,可以用这个Memento对象将它恢复到创建它时的状态。

2015-08-01 23:14:59 1169

决策树-上-ID3-C4.5-CART-及剪枝

从百度下载的关于决策树的讲义。

2016-05-21

stl 的dequeue

stl的一个源代码,加了店主是,比较容易理解

2014-08-13

《STL源码剖析》光盘附带源码

侯捷翻译的《STl源码剖析》一书中的源代码。word文档格式。

2014-08-11

STL5.2.1源代码

这SGI STL5.2.1的源代码,可以在vs2010上面编译使用

2014-08-10

mingw5.1.6安装包

mingw5.1.6安装包,集成了g++、gcc编译器,可以选择安装。

2014-08-09

sun java version 1_3_1-win-i.exe

Jave RunTime Environment 1.3,Windos版本

2014-03-04

空空如也

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

TA关注的人

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