Mickey 小站

尘世迷途小码农

begin-java

java小白入门

最近在面试的时候,发现很多公司的技术栈都是 Java,虽然语言不是壁垒,但还是会有很多不便,另外,我想看看 Flink 的源码,于是开始学习 Java github 上优秀的 Java 知识集合 CS-Notes Java Guide  Java 泛型的介绍 Java 泛型 ...

interview

面试总结

最近各家公司都开始暑期实习的招聘了,在这里总结一下,题目来自本人或同学的面试,本人是大数据 + 后台方向 腾讯(后台开发一面) 了解哈希嘛?说说哈希在密码学中的应用? 将任意长度的二进制值串映射为固定长度的二进制值串,这个映射的规则就是哈希算法,而通过原始数据映射之后得到的二进制值串就是哈希值 应...

Jike Algo

极客时间-算法

上学期知识付费买的极客时间算法系列一直没来得及看,最近准备快速过一遍,在这里记录一下有用的知识点 为什么大多数编程语言中,数组要从 0 开始编号,而不是从 1 开始呢? 从数组存储的内存模型上来看,“下标”最确切的定义应该是“偏移(offset)”。前面也讲到,如果用 a 来表示数组的首地址,a[0] 就是偏移为 0 的位置,也就是首地址,a[k]就表示偏移 k ...

2018-summary

2018年终总结

今天是大年初三,本该在年前完成的年终总结拖到了现在(拖延症真的恐怖),今年过年县里彻底贯彻了杜绝烟花爆竹的方针,显的有些冷清,好了,言归正传 再见,2018 过去的一年,变化非常大 2018年3月 在家安逸的度过元宵之后,踏上了回北京的火车,看着父母逐渐老去,心里还是很难受的。返回学校之后,老师依旧没有喊我回实验室,于是继续在头条实习,期间,业务进行了一次重组,我,涛神,鹏队和 de...

golang-file-lock

golang 文件锁操作

golang 的文件锁操作 这篇文章给大家介绍一下 golang 的文件锁。我们在使用 golang 开发程序的时候,经常会出现多个 goroutine 操作同一个文件(或目录)的时候,如果不加锁,很容易导致文件中的数据混乱,于是,Flock 应运而生。 Flock 是对于整个文件的建议性锁(不强求 goroutine 遵守),如果一个 goroutine 在文件上获取了锁,那么其他 ...

sync-waitgroup-source-code-analysis

golang waitgroup rwmutex 源码分析

sync.WaitGroup源码分析 针对Golang 1.9的sync.WaitGroup进行分析,与Golang 1.10基本一样除了将panic改为了throw之外其他的都一样。 源代码位置:sync\waitgroup.go。 结构体 type WaitGroup struct { noCopy noCopy // noCopy可以嵌入到结构中,在第一次使用后不可复制,使用g...

sync-once-source-code-analysis

golang once rwmutex 源码分析

sync.Once源码分析 sync.Once可以实现单例模式,确保sync.Once.Do(f func())只会被执行一次,可以初始化某个实例单例。 针对Golang 1.9的sync.Once,与Golang 1.10一样。 源代码位置:sync\once.go。 结构体 Once结构体定义如下: type Once struct { m Mutex done uin...

sync-rwmutex-source-code-analysis

golang sync rwmutex 源码分析

sync.RWMutex源码分析 针对 Golang 1.9 的 sync.RWMutex 进行分析,与 Golang 1.10 基本一样除了将panic改为了throw之外其他的都一样 RWMutex 是读写互斥锁,锁可以由任意数量的读取器或单个写入器来保持 RWMutex 的零值是一个解锁的互斥锁 RWMutex 是抢占式的读写锁,写锁之后来的读锁是加不上的 以下代码均去除ra...

sync-mutex-source-code-analysis

golang sync mutex 源码分析

sync.Mutex 源码分析 针对 Golang 1.10.3 的 sync.Mutex 进行分析,代码位置:sync/mutex.go 结构体 type Mutex struct { state int32 // 指代mutex锁当前的状态 sema uint32 // 信号量,用于唤醒goroutine } Mutex 中的 state 用于指代锁当前的状态,如下所示...

sync-cond-source-code-analysis

golang sync cond 源码分析

sync.Cond源码分析 Cond的主要作用就是获取锁之后,wait()方法会等待一个通知,来进行下一步锁释放等操作,以此控制锁合适释放,释放频率,适用于在并发环境下goroutine的等待和通知。 针对Golang 1.9的sync.Cond,与Golang 1.10一样。 源代码位置:sync\cond.go。 结构体 type Cond struct { noCopy no...