摘要: 简单工厂模式 概述: 简单工厂模式属于创建型模式,创建型模式主要关注点是“怎样创建对象?”,它的主要特点是“将创建对象与使用分离”。这样可以降低系统的耦合度,使用者不需要关心对象创建的细节,对象的创建由相关的工厂去完成。 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类( 阅读全文
posted @ 2019-07-08 17:02 张三编程分享 阅读(139) 评论(0) 推荐(0)
摘要: 模式的定义与特点 工厂方法(FactoryMethod)模式的定义:定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。 本节介绍的“工厂方法模式”是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情 阅读全文
posted @ 2019-07-08 17:02 张三编程分享 阅读(156) 评论(0) 推荐(0)
摘要: l new操作符(new operator) string *ps = new string(“Memory Management”); 这里的new是由语言内建的,我们成为new关键字。new操作符做了两件事情: 1、在堆上分配足够的内存,用来放置某类型的对象;使用operator new进行内存 阅读全文
posted @ 2019-07-07 16:51 张三编程分享 阅读(620) 评论(0) 推荐(0)
摘要: 转自:http://luodw.cc/2015/10/15/leveldb-04/ 这篇博客主要讲解下leveldb内存池,内存池很多地方都有用到,像linux内核也有个内存池。内存池的存在主要就是减少malloc或者new调用的次数,较少内存分配所带来的系统开销。 Arena类采用vector来存 阅读全文
posted @ 2019-06-24 22:49 张三编程分享 阅读(433) 评论(0) 推荐(0)
摘要: 1、使用ulimit -a可以查看,其中的open files后面的数就是最大文件句柄数 2、临时方法:使用ulimit -n size修改最大文件句柄数(这种方法只针对当前进程有效) 3、永久方法:修改linux系统参数。vi /etc/security/limits.conf * soft no 阅读全文
posted @ 2019-06-10 21:11 张三编程分享 阅读(2425) 评论(0) 推荐(0)
摘要: 转自:http://luodw.cc/2015/10/15/leveldb-02/ leveldb和redis这样的优秀开源框架都没有使用C++自带的字符串string,redis自己写了个sds,leveldb写了slice,本质上这三个实现原理都是一样的(当然sds是用C实现的),都有成员属性指 阅读全文
posted @ 2019-05-30 23:22 张三编程分享 阅读(678) 评论(0) 推荐(0)
摘要: 1、下载源码并编译 tar zxvf cmake-3.12.2-Linux-x86_64.tar.gz 创建软链接 注: 文件路径是可以指定的, 一般选择在/opt 或 /usr 路径下, 这里选择/optmv cmake-3.12.2-Linux-x86_64 /opt/cmake-3.12.2l 阅读全文
posted @ 2019-05-22 09:42 张三编程分享 阅读(2398) 评论(0) 推荐(0)
摘要: 在用户空间中实现线程特点: 整个线程包放入用户空间中,内核对线程包一无所知。从内核角度考虑,就是按正常的方式管理,即单线程进程 优点: 1、用户级线程包可以在不支持线程的操作系统上实现 2、线程切换比内核快更多 3、允许每个进程有自己定制的调度算法 缺点: 线程发生I/O或页面故障引起的阻塞时,如果 阅读全文
posted @ 2019-05-10 10:27 张三编程分享 阅读(769) 评论(0) 推荐(0)
摘要: hashtable使用开链的方式,解决元素个数大于array容量的问题。 当两个不同元素hash得到相同的hash值时,此时我们使用bucket list来链接连个元素。 hashtable迭代器必须永远维系着与整个"bucket vector"的关系,并记录目前所指的节点。其前进操作是首先从从目前 阅读全文
posted @ 2019-04-29 11:32 张三编程分享 阅读(284) 评论(0) 推荐(0)
摘要: STL--关系型容器 1.树的基本概念 1.1二叉搜索树 二叉搜索树:它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 1.2平衡二叉搜索 阅读全文
posted @ 2019-04-28 20:35 张三编程分享 阅读(384) 评论(0) 推荐(0)