自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 共享内存与slab管理

多个进程间的共享信息需要共享内存,当我们需要同一段业务逻辑在不同的进程中生效,比如在许多集群的流控上。同步的方式,信号量,自旋锁。信号量是早期一种进程间同步的方式,他对共享资源的占用会导致其他竞争进程的休眠,发生进程间的切换。相对自旋锁则会让其他进程不断地重试。这也使得使用自旋锁的场景下,占用的进程必须得快速地使用资源,快速地使用锁。一旦有进程不遵循这样的规则,可能会使其性能下降。共享内存的使用在我们需要在共享内存上分配对象时候,如果手动为不同的对象分配分配内存,往往是非常繁琐的,因此我们可以用s

2021-01-27 11:22:34 194

原创 公钥私钥与证书

公钥私钥证书在客户端服务器的场景下,服务器拥有公钥和私钥,在加密的场景下,客户端通过使用公钥加密与服务端通信,服务端收到之后使用私钥解密。数字签名:服务端发送给客户端之前,对消息内容使用Hash,生成内容的摘要。同时,使用私钥对摘要进行加密,生成了数字签名。证书中心CA:这里存在一个问题,客户端的公钥有可能是被替换伪造的。于是,服务器找到CA,CA用自己的私钥,对服务器的公钥与相关信息进行加密,生成数字证书。在客户端使用公钥的时候,使用CA的公钥对服务端的公钥进行验证。于是,服务器发送信息的时候,签

2021-01-26 23:36:23 853

原创 布隆过滤器

布隆过滤器当一个元素被加入集合时,通过 K个Hash函数将这个元素映射成一个位数组中的K个点,把它们置为1。检索时,我们只要看看这些点是不是都是1就(大约)知道集合中有没有它。如果这些点有任何一个0,则被检元素一定不在;如果都是1,则 被检元素很可能在。常见Hash函数常见的应用比较广的hash函数有MD5,SHA1,SHA256,一般用于信息安全方面,比如签名认证和加密等。比如我们传输文件时习惯用对原文件内容计算它的MD5值,生成128 bit的整数,通常我们说的32位MD5值,是转换为HEX格

2021-01-26 23:35:02 137 1

原创 时间复杂度

时间复杂度时间常数的操作O(1)时间复杂度的定义时间复杂度的分析eg1.有序数组a,无序数组b,查找b中当前不属于a的所有数(num(a):N,num(b):M)。每个b数,都遍历a一下显然,时间复杂度O(M*N)每个b数,都二分查找a一下二分查找过程,相当于2的阶乘直到样本量,故而时间常数操作的数量是log N,时间复杂度为O(M*log N)b先排序,再对a数外排。排序的...

2021-01-21 00:44:20 870

原创 排序算法

快速排序Partition 荷兰国旗问题给定一个数num,将一个数组arr中所有大于num的数放右边,小于num的数放左边,等于num的数放中间。void partition(vector<int>& arr, int L, int R ,int num){ int cur = L; int left = L-1, right = R+1; ...

2020-03-01 22:20:13 87

原创 c++入门到精通(一)

C与C++类struct与class继承带来的override 多态带来的函数重载

2020-02-18 00:27:04 201

原创 c++ 对象模型

类对象空间占用对象是有地址的,空对象的尺寸为1字节。所有函数(普通成员函数,静态成员函数,虚函数),静态成员变量属于类,尺寸不计算在对象大小内。虚函数表(vtbl)属于类,不属于对象。虚函数表指针(vptr)属于对象,占用对象的尺寸大小。普通成员属于对象,且多个普通成员之间存在字节对齐。字节对齐1.字节对齐是什么?由于CPU访问内存的地址特性,一个变量如果不对齐,可能会触发更...

2020-02-17 00:05:40 100

原创 网络IO与reactor,proactor事件驱动模型

Stevens在网络编程的书中概括了五种网络IO。blocking IOnonblocking IOIO multiplexingsignal driven IOasynchronous IO通常来说,当一个网络IO发生时候包括到两个对象:用户空间的调用进程和内核空间的内核进程。当我们的用户层触发一个IO操作的时候,需要等待两个阶段:1.等待数据准备2.将数据从内核拷贝至用户进程...

2020-02-06 01:13:13 394

原创 mysql的c++开发

登录相关登录mysql在服务器上登录:mysql -u 账户 -p 密码登录其它服务器:mysql -h ip地址 -P 3306 -u 账户 -p 密码创建test用户,密码是123abc#grant all on . to test@‘localhost’ identified by ‘123abc#’;flush privileges;或者grant all on . to...

2019-12-26 00:07:50 349

原创 GDB调试详解

Linux下的c++程序开发,makefile,cmake等编译工具最终都是调用gcc这一编译工具组。一般要调试某个程序,为了清晰地看到调试的每一行代码,调用的堆栈信息,变量名和函数名等信息,需要调试程序含有调试符号信息。1.使用-g可以在编译后的程序中保留调试符号信息那么判断一个可执行程序是否带有调试信息?gdb hello_world查看显示结果。这时候在显示信息的最后一行,如...

2019-12-23 00:42:29 693

原创 linux常用网络相关命令

静态路由简介:路由器的功能主要是跨网段通信。静态路由指的是手工指定的路由,相对于动态路由,静态路由不需要在路由器之间频繁地交换各自的路由表,因此,相对于动态路由,静态路由主要有不占用网络带宽更新流量,也会更加安全(通过对动态路由表的分析可以得出网络的拓扑结构和网络地址信息)。route查看路由表route -n 或netstat -rn这里,.0.0.0.0代表任何地方,发给...

2019-12-17 00:51:39 121

原创 详解红黑树

基本概念红黑树是一种自平衡二叉查找树,和AVL树类似,在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。基本性质1.节点非红即黑2.根节点是黑的3.叶子节点是黑的4.一个节点是红的,两个儿子都是黑的5.每个节点,从该节点到子孙节点所有路径上包含相同数目的黑节点...

2019-12-09 00:27:05 117

原创 GIT

GIT仓库gitc仓库就是用git管理的一个目录,这个仓库里面所有的文件改动,都由git跟踪记录。也可以通过git查看,还原所有的记录。 创建一个git仓库: 1.mkdir <dir> 2.cd <dir> 3.git init (nit empty warehouse) 这时候目录下回多一个.git目录,这里面就是有关于gi...

2019-12-04 00:03:33 85

空空如也

空空如也

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

TA关注的人

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