摘要: 今天这篇笔记重点讲goroutine 首先怎么定义goroutine 很简单,在方法前面加上go就可以了 func main() { go sayHello() } func sayHello() { fmt.Println("hello") } 也可以直接这样写, 基于匿名函数 go func() 阅读全文
posted @ 2022-11-16 18:01 dk168 阅读(103) 评论(0) 推荐(0)
摘要: 已经把《Go 语言并发之道》通读了一遍,非常不错的一本书,对于理解掌握Go语言的并发知识有很大的帮助,接下来我会把书中有用的知识通过代码示例出来,把一些比较好的知识点记录下来。 首先我们来看一段代码 var data int go func() { data++ }() if data == 0 { 阅读全文
posted @ 2022-11-11 15:22 dk168 阅读(128) 评论(0) 推荐(0)
摘要: 二叉树是比较基础的数据结构,以前也知道,但是一直没有细究,不明白它究竟有什么作用,这次学习数据结构,结合Go语言来动手实践一个,只有动手做一做对它的理解才比较深一点。 二叉树的定义 首先是二叉树的定义,二叉树顾名思义有两个叉,左右各一个,最多两个。 根节点 关于根节点,起初我还以为二叉树的根节点会变 阅读全文
posted @ 2022-11-07 15:43 dk168 阅读(188) 评论(0) 推荐(0)
摘要: 学习bolt源码 bbolt,发现有一处使用到mmap, 开始的时候不明白是什么东西,很是好奇,怎么就把硬盘上的文件读到内存了,并没有看到read方法,后来查了资料,知道原来使用了mmap,所谓mmap是讲文件映射到内存的方法,操作内存,数据就到了硬盘上,修改硬盘,数据也能刷到内存。 而且它有个好处 阅读全文
posted @ 2022-10-31 16:48 dk168 阅读(125) 评论(0) 推荐(0)
摘要: 最近学习一个GO语言写的开源项目Lotusdb, https://github.com/flower-corp/lotusdb, 其中使用跳表作为数据结构来缓存Key-Value,产生了疑惑为什么不直接用Map而要自己写个跳表呢? 带着这个疑惑我就进一步学习了很多知识。学习过程记录下来。 跳表首先第 阅读全文
posted @ 2022-10-31 16:46 dk168 阅读(118) 评论(0) 推荐(0)
摘要: 通过阅读GO 语音版本的B+Tree来理解一下B+Tree, B+Tree最有名的应用是用在mysql里面用做索引查找数据 先来一张图说明一下, 这个图来自于https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html,用这个可视化的工具 阅读全文
posted @ 2022-10-31 16:20 dk168 阅读(131) 评论(0) 推荐(0)