个人笔记
qiang527052
这个作者很懒,什么都没留下…
展开
-
个人学习进程
学习进程1、golang底层——slice数据结构,第一个变量指向数组第一个元素的地址;第二个变量len,表示现有数组元素个数,第三个cap表示初始化数组内存数量,append时如果cap还有空位,则不会扩容,还是原数组地址,如果cap没有空位,则根据数组长度扩容,小于1024,则翻倍扩容,大于1024则四分之一倍扩容,扩容后数组地址变化。——map数据结构主要设计就是数组+桶(tophash、8key、8value)+链表;对key进行hash算法得到hash值,低位确定在数组的桶位置,高位依次原创 2022-03-21 16:51:39 · 579 阅读 · 0 评论 -
基于Redis的分布式锁
基于Redis的分布式锁背景主要最近在研究红包,抽奖,秒杀各类活动,考虑到多台服务器上,可能会获取到旧数据,所以上网查询了下方法,了解了分布式锁,一般是数据库的乐观锁或者用zookeeper或者reids做分布式锁,基本原理:用一个状态值表示锁,对锁的占用和释放通过状态值来标识。在这里做了下笔记。基本的命令1、SETNX(SET if Not eXists) SETNX key value 将转载 2017-10-23 20:37:16 · 175 阅读 · 0 评论 -
面经问题整理
面经问题整理一、HashMap如何实现的?jdk1.7以前,hashMap的数据结构是数组+链表的形式,hashMap中维护着一个Entry[]数组变量,Entry中维护着key,value,hash,next(下一个Entry)。 当向hashMap对象put一个键值对时,首先会先根据key的hashCode值计算出一个值(hashCode值与数组的长度取模),即数组的索引。如果该位置原创 2017-10-18 20:22:09 · 271 阅读 · 0 评论 -
Go 语言使用WaitGroup个人笔记记录
func main() { //用于条数判断 count := 0 for nextTimeFlag { count++ number, _ := strconv.Atoi(analysisReq.Number) if count > number+1 { nextTimeFlag = false原创 2017-12-26 12:12:12 · 301 阅读 · 0 评论