算法源码
又肥又壮的韭菜
这个作者很懒,什么都没留下…
展开
-
获取结构体成员变量偏移量
#define OFFSET_OF(type, member) (unsigned long)(&(((type *)0)->member))代码的含义就是 获取内存地址编号为0的结构体type的成员变量member,此处只是利用了编译器的特性来计算结构体偏移,并未对内存地址0有任何操作...原创 2020-05-28 16:00:09 · 683 阅读 · 0 评论 -
C# ConcurrentDictionary实现
ConcurrentDictionary的源码看了很多遍,今天抽点时间整理一下,它的实现比Dictionary要复杂很多,至于线程安全我觉得比较简单,用的是lock的思想。首先我们来看看它的源码。 public class ConcurrentDictionary<TKey, TValue> : IDictionary<TKey, TValue>, IDicti...原创 2019-01-18 10:18:47 · 2668 阅读 · 0 评论 -
红黑树
作为一种数据结构,红黑树可谓不算朴素,因为各种宣传让它过于神秘,网上搜罗了一大堆的关于红黑树的文章,不外乎千篇一律,介绍概念,分析性能,贴上代码,然后给上罪恶的一句话,它最坏情况怎么怎么地... 我们想,一棵二叉树怎么就是最坏情况,那就是它退化为一个链表,这样查找就成了遍历。问题是,平衡二叉树怎么会退回链表!它是怎么保持平衡的?能不能简单 地阐述?当然可以!一般的讲述...原创 2019-01-31 16:29:33 · 170 阅读 · 0 评论 -
集群瓶颈为什么是磁盘io
阅读本文思考:1.对磁盘IO了解多少2.为什么是磁盘IO是瓶颈,有没有自己的答案想了解磁盘io可以查看此帖:集群瓶颈:磁盘IO必读(磁盘IO:磁盘输出输出)集群的瓶颈提出多种看法,其中网络和磁盘io的争议比较大。这里需要说明的是网络是一种稀缺资源,而不是瓶颈。对于磁盘IO:当我们面临集群作战的时候,我们所希望的是即读即得。可是面对大数据,读取数据需要经过IO,这里可以把IO理解为水的管...转载 2019-03-26 20:39:10 · 1120 阅读 · 0 评论 -
Redis分布式锁的正确实现方式
from:https://www.cnblogs.com/linjiqin/p/8003838.html前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇...转载 2019-03-27 17:21:47 · 138 阅读 · 0 评论