自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux 多线程(一) 多线程了解

Linux 多线程(一) 多线程了解多线程和单线程区别​ (一)首先了解一下cpu:​ 随着主频(cpu内核工作时钟频率,表示在CPU内数字脉冲信号震荡的速度,等于外频(系统基本时间)乘倍频)的不断攀升,X86构架的硬件逐渐成为瓶颈,最高为4G,事实上目前3.6G主频的CPU已经接近顶峰。​ 多线程编程的目的,就是"最大限度地利用CPU资源",当某一线程...

2019-07-10 23:39:26 182

原创 十种排序算法

十种排序算法之前看了一个大牛的博客,太牛了,没啥好写的,推荐出来https://www.cnblogs.com/onepixel/articles/7674659.html自己实现/* * sortfun.h * * Created on: 2019年5月1日 * Author: Administrator */#ifndef SORTFUN_H_#define...

2019-07-01 22:26:51 120

原创 redis 源码intset(intset.c/intset.h)

redis 源码intsetintset是集合键的底层实现之一, 保存的元素是有序的。redis中intset是一个整数集合, 只能存储整数类型的数据, 可以是16位, 32位, 或者是64位, 是以升序排列的数组进行保存数据,下面会介绍具体数据结构和对其操作过程.数据结构typedef struct intset { // 编码方式 uint32_t encoding;...

2019-07-01 00:37:48 252

原创 redis字典(dict.h/dict.c)(二)

redis字典(dict.h/dict.c)(二)第一部分主要介绍了redis字典的结构,第二章主要介绍源码中几个比较重要的函数基本函数//重置dictstatic void _dictReset(dictht *ht){ ht->table = NULL; ht->size = 0; ht->sizemask = 0; ht->u...

2019-06-29 21:23:32 716

原创 redis字典(dict.h/dict.c)(一)

redis字典(dict.h/dict.c)(一)redis中的字典目前很多语言中都封装了字典,但是C语言中没有字典,所以redis自己底层实现了字典redis的字典底层是通过hash实现的,使用的是哈希链地址法redis字典的数据结构这里有一个关系redis数据结构有key-dict,就是每个key对应一个dict字典每个字典dict又对应多个keys-values多个ke...

2019-06-29 11:13:48 793

原创 redis双向链表源码解析(adlist.h/adlist.c)

redis双向链表源码解析(adlist.h/adlist.c)数据结构listNode是一个双向链表节点结构,每个节点存的数据用void*指向。listIter是一个双向链表迭代器,其中direction用来判断迭代方向list表示双向链表结构,保存着头节点,尾节点,提供三个函数指针, 供用户传入自定义函数, 用于复制(dup)、释放(free)和匹配(match)链表中的结点的值(va...

2019-06-28 01:04:38 377

原创 redis字符串源码解析(sds.h/sds.c)

redis字符串源码解析(sds.h/sds.c)字符串的定义首先看一下redis字符串结构体/* * 类型别名,用于指向 sdshdr 的 buf 属性 */typedef char *sds;struct sdshdr { // buf 中已占用空间的长度 int len; // buf 中剩余可用空间的长度 int free; /...

2019-06-27 00:46:34 999

原创 C++设计模式命令模式(Command)

什么是命令模式命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式可用来消除程序中的耦合问题。每个“常规”的操作必须周期性地调用一个函数来检查事件的状态,而通过命令模式,这些“常规”操作不需要知道有关它们所检查的事件的任何信息,也就是说它们已经与事件处理代码分离开来。也就是说,客户只用下命令,它不需要知道下令之...

2019-06-21 00:02:01 505

原创 C++实现备忘录模式(Memento)

什么是备忘录模式在不破坏封装的情况下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。角色角色角色作用Originator负责创建一个Mementor,用以记录当前时刻它的内部状态,并可使用备忘录恢复内部状态Mementor负责存Originator对象的内部状态,并可防止Originator以外的对象方位备忘录...

2019-06-20 00:27:26 242

原创 中介者模式(mediator)(C++)

什么是中介者模式**中介者模式mediator,**用一个中介对象来封装一系列的对象交互,中介者对象使各对象不需要显示的相互引用,从而使其耦合松散,并且可以独立的改变他们之间的交互方式角色角色角色作用抽象中介者包含一个所有col对象,和一个抽象接口具体中介者实现具体接口抽象同事包含中介,以及与中介交互的接口具体同事实现接口#include...

2019-06-18 00:48:27 206 1

原创 外观模式(Facade)之C++

什么是外观模式(facade)为子系统中一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这个系统更加容易使使用。例子举个例子,大家买股票,每支股票可以看成是SubSystem,我们可以同时买多只股票,那么你需要知道多个SubSystem。有些人比较懒,不想关注股票,但是又想赚钱,那就只能买基金了,基金是结合了多只股票,客户只关注这些基金,而不关注股票,所以需要一个基金类f...

2019-06-17 22:32:56 165

原创 建造者模式

建造者模式什么是建造者模式建造者模式的定义将一个复杂对象的构建与它的表示分离;复杂对象的建造指的是对象中复杂的接口实现,而表示指的是通过这些实现,可以得到不同的结果,其实多态《大话设计模式》中,例子是,建造小人,一共需建造6个部分,头部、身体、左右手、左右脚。与工厂模式不同,建造者模式是在导向者的控制下一步一步构造产品的。代码实现很简单,如下;角色角色作用角色成员...

2019-06-17 22:10:36 65

原创 状态模式(state)C++实现

状态模式(state)C++实现什么是状态模式状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了这个类状态模式的主要解决的是,当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。当然,如果这个状态判断逻辑很简单,就没有必要使用状态模式了这里对于简单逻辑判断和复杂逻辑判断,大家可以自己考虑,...

2019-06-17 00:48:34 1343

原创 观察者模式(Observer Pattern)C++

观察者模式(Observer Pattern)什么是观察者模式观察者模式,她定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。观察者模式的角色角色角色作用主要成员抽象主题(Subject)目标知道它的观察者。可以有任意多个观察者观察同一个目标提供注册和删除观察者对象的接口观察者(Observer)观察...

2019-06-16 16:57:30 153

原创 C++设计模式之代理模式

C++设计模式之代理模式什么是代理模式**代理模式(Proxy)

2019-06-13 23:48:44 143

原创 C++变参模板类

C++可变参数模板之前学习模板,都是固定参数的模板,前段时间看源码时,注意到了变参模板类,觉得很有意思。什么是可变参模板template<typename... Args> class MoreApply;如上,就是一个可变参模板类的申明。至于Args…中传进来多少参数,由使用者决定。了解变参模板函数的程序员都知道,变参模板作难的是参数展开,变参模板类也不例外,接下来,介绍两...

2019-06-11 00:48:32 2193

原创 C++设计模式之装饰模式

C++设计模式之装饰模式什么是装饰模式首先定义个Phone的基类可以生成一个子类IPhone为Phone生成DecoratorPhone类, *将手机嵌入到另一个对象中,由这个对象完成特性的添加,我们称这个嵌入的对象为装饰。*具体的装饰类DecoratorPhoneA,*这个装饰和它所装饰的组件接口一致,因此它对使用该组件的客户透明。*主函数输出什么是装饰模式**装饰模式:**动态的给一个对象...

2019-06-09 23:23:41 99

空空如也

空空如也

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

TA关注的人

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