自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Y先森0.0

时间并不会因为你的迷茫和迟疑而停留

  • 博客(15)
  • 收藏
  • 关注

原创 WebBench压力测试工具(详细源码注释+分析)

WebBench压力测试工具(详细源码注释+分析) 本文适合人群:对WebBench实现感兴趣的人WebBench原理:Linux下使用的服务器压力测试工具,利用fork建立多个子进程,每个子进程在测试时间内不断发送请求报文,建立多个连接,然后由父进程统计:TCP连接成功次数,TCP连接失败次数,从服务器接收的数据量WebBench适用于小,中型网...

2019-04-28 15:55:00 844

原创 Redis学习之字典源码分析

Redis学习之字典源码分析 字典,又叫映射,是一种用于保存键值对的抽象数据结构划重点:抽象数据结构Redisd字典使用哈希表作为底层实现,一个哈希表里面可以有多个哈希表结点,而每个哈希表结点就保存了字典中的一个键值对一.哈希表结构// dictht 哈希表//每个字典都使用两个哈希表,从而实现渐进式 rehash...

2019-04-25 09:16:00 206

原创 Redis学习之dict字典源码分析

字典,又叫映射,是一种用于保存键值对的抽象数据结构划重点:抽象数据结构Redisd字典使用哈希表作为底层实现,一个哈希表里面可以有多个哈希表结点,而每个哈希表结点就保存了字典中的一个键值对一.哈希表结构// dictht 哈希表//每个字典都使用两个哈希表,从而实现渐进式 rehashtypedef struct dictht { // 这是字典的头部...

2019-04-25 09:16:00 189

原创 Redis学习之底层链表源码分析

Redis学习之底层链表源码分析 ps:C语言没有内置的链表,所以Redis构建了自己的链表实现,研究Redsi源码的话链表必须要研究一下!一.链表结点的结构(单个结点):// listNode 双端链表节点typedef struct listNode { // 前置节点 struct listNod...

2019-04-20 21:46:00 171

原创 Redis学习之list底层链表源码分析

Redis底层链表的源码分析:一.链表结点的结构(单个结点):// listNode 双端链表节点typedef struct listNode { // 前置节点 struct listNode *prev; // 后置节点 struct listNode *next; // 节点的值 void *...

2019-04-20 21:46:00 149

原创 Redis学习之SDS源码分析

Redis学习之SDS源码分析 一.SDS的简单介绍SDS:简单动态字符串(simple dynamic string)1)SDS是Redis默认的字符表示,比如包含字符串值的键值对都是在底层由SDS实现的2)SDS用来保存数据库中的字符串值3)SDS被用作缓冲区:比如AOF模块的AOF缓冲区,以及客户端状态中的输入缓冲区...

2019-04-20 10:53:00 288

原创 目前最详细的红黑树原理分析(大量图片+过程推导!!!)

目前最详细的红黑树原理分析(大量图片+过程推导!!!) 一.为什么要有红黑树这种数据结构? 我们知道ALV树是一种严格按照定义来实现的平衡二叉查找树,所以它查找的效率非常稳定,为O(log n),由于其严格按照左右子树高度差不大于1的规则,插入和删除操作中需要大量且复杂的操作来保持ALV树的平衡(左旋和右旋),因此ALV树适用于大量查询,少量...

2019-04-18 21:39:00 4474

原创 深入源码理解ThreadLocal和ThreadLocalMap

深入源码理解ThreadLocal和ThreadLocalMap 一.ThreadLoacl的理解:官方的讲:ThreadLocal是一个本地线程副本变量工具类,主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰通俗的讲:ThreadLocal也叫做线程本地变量,ThreadLoacl为变量在每个线程中的...

2019-04-18 12:35:00 270

原创 八大排序算法思想介绍

八大排序算法思想介绍 1.插入排序 *直接插入排序 *希尔排序2.选择排序 *简单选择排序 *堆排序3.交换排序 *冒泡排序 *快速排序4.归并排序5.基数排序不稳定排序:简单选择排序,快速排序,希尔排序,堆排序稳定排序:冒泡排序,直接插入排序,归并排序,奇数排序一.插入排序将第一个和第二个元素排好序,然后将第3个元素插入到已经排好序的...

2019-04-13 10:45:00 268

原创 关于高并发问题的点滴思考

关于高并发问题的点滴思考 问题背景:曾经做过一个项目,医院预约挂号系统,挂号的话专家号很多人抢,这是一个高并发的问题,我以前针对专家号系统的解决方案就是直接在数据库MySQL上面加锁,简单有效,完美完成任务,但是这是针对并发量很少的情况,最近在思考,如果并发量很大的话,我的专家号系统模块应该怎么办呢?专家号系统模块需要解决的问题:1.瞬间高并发(很...

2019-04-10 11:47:00 511

原创 一致性Hash算法的原理与实现(分布式映射算法)

一致性Hash算法的原理与实现(分布式映射算法) 一致性Hash算法解决的问题:解决分布式系统中的负载均衡问题背景问题:有N台服务器提供缓存服务,需要对服务器进行负载均衡,将请求平均发到每台服务器上,每台服务器负载1/N的服务硬Hash映射:将每台服务器结点进行编号,0到N-1,Key%N就是映射到的服务器结点编号...

2019-04-08 10:02:00 183

原创 JAVA面试之数据库篇

JAVA面试之数据库篇 1.什么是存储过程?优缺点?类似编程语言中函数一样的东西,封装我们的代码优点:*代码封装 *保存在数据库中 *让编程语言调用 *预编译代码块,执行效率高 *可以替代大量sql语句,降低网络通信量,提高通信速率缺点:*每个数据库的存储过程语法都不一样,难以维护,不通用 *业务逻辑放在数据...

2019-04-04 16:37:00 410

原创 Java线程安全与锁优化

Java线程安全与锁优化 线程安全的严谨定义:当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交题执行,也不需要进行额外的同步,或者调用方法进行其他任何操作,调用这个对象的行为都可以或者正确的结果,那么这个对象是线程安全的!java共享数据分类(5类)1)不可变2)绝对线程安全:不管运行环境如何,调用者都不需要任何额外的同步措施...

2019-04-03 10:18:00 205

原创 JAVA体系的线程的实现,线程的调度,状态的转换

JAVA体系的线程的实现,线程的调度,状态的转换 java体系中线程的实现1.使用内核线程实现内核线程就是直接由操作系统内核支持的线程,这种线程由内核来完成线程切换,内核通过操作调度器对线程进行调度,并负责将线程的任务映射到各个处理器上,每个内核线程可以视作内核的一个分身,这样操作系统就有能力处理多件事情,支持多线程的内核就叫做多线程内核,程序一般...

2019-04-02 18:40:00 99

原创 Java内存模型(和堆栈等不是同一层次的划分)

Java内存模型(和堆栈等不是同一层次的划分) 背景知识: *每秒处理事务数:衡量一个服务性能的高低好坏,每秒处理事务数是重要的衡量指标之一 *高速Cache:由于计算机的存储设备与处理器的运算速度有几个数量级的差距,所以现代计算机都不得不加入一层读写速度尽可能的接近处理器运算速度的高速缓存来作为内存和处理器直接的缓冲 *缓存一致性协议:用于...

2019-04-02 18:15:00 209

空空如也

空空如也

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

TA关注的人

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