摘要: golang 提供了几个简单的容器供我们使用,本文在介绍几种Golang 容器的基础上,实现一个基于Golang 容器的LRU算法。 容器介绍 Golang 容器位于 container 包下,提供了三种包供我们使用,heap、list、ring. 下面我们分别学习。 heap heap 是一个堆的 阅读全文
posted @ 2020-05-06 10:06 搬砖程序员带你飞 阅读(1009) 评论(0) 推荐(0) 编辑
摘要: 本文让我们一起来学习 golang Context 的使用和标准库中的Context的实现。 golang context 包 一开始只是 Google 内部使用的一个 Golang 包,在 Golang 1.7的版本中正式被引入标准库。下面开始学习。 简单介绍 在学习 context 包之前,先看 阅读全文
posted @ 2020-05-03 10:26 搬砖程序员带你飞 阅读(3806) 评论(0) 推荐(1) 编辑
摘要: title: Golang Map 实现 (四) date: 2020-04-28 18:20:30 tags: golang map 操作,是map 实现中较复杂的逻辑。因为当赋值时,为了减少hash 冲突链的长度过长问题,会做map 的扩容以及数据的迁移。而map 的扩容以及数据的迁移也是关注的 阅读全文
posted @ 2020-04-30 10:03 搬砖程序员带你飞 阅读(17690) 评论(2) 推荐(0) 编辑
摘要: 本文在golang map 数据结构的基础上,学习map 数据是如何访问的。 map 创建示例 在golang 中,访问 map 的方式有两种,例子如下: 第一种方式不判断是否存在key值,直接返回val (可能是空值) 第二种方式会返回一个bool 值,判断是否存在key 键值。(是不是和redi 阅读全文
posted @ 2020-04-30 10:00 搬砖程序员带你飞 阅读(1268) 评论(0) 推荐(0) 编辑
摘要: 本文在golang map 数据结构的基础上,学习一个make 是如何构造的。 map 创建示例 在golang 中,初始化一个map 算是有两种方式。 第一种方式默认不指定map的容量,第二种会指定后续map的容量估计为100,希望在创建的时候把空间就分配好。 当make创建map时,底层做了什么 阅读全文
posted @ 2020-04-26 09:41 搬砖程序员带你飞 阅读(2390) 评论(1) 推荐(0) 编辑
摘要: 本文学习 Golang 的 Map 数据结构,以及map buckets 的数据组织结构。 hash 表是什么 从大学的课本里面,我们学到:hash 表其实就是将key 通过hash算法映射到数组的某个位置,然后把对应的val存放起来。 如果出现了hash冲突(也就是说,不同的key被映射到了相同的 阅读全文
posted @ 2020-04-26 09:40 搬砖程序员带你飞 阅读(2858) 评论(0) 推荐(0) 编辑
摘要: 本文从源码角度学习 golang slice 的创建、扩容,深拷贝的实现。 内部数据结构 slice 仅有三个字段,其中array 是保存数据的部分,len 字段为长度,cap 为容量。 通过下面代码可以输出空slice 的大小: 创建 创建一个slice,其实就是分配内存。cap, len 的设置 阅读全文
posted @ 2020-04-21 09:17 搬砖程序员带你飞 阅读(1537) 评论(0) 推荐(3) 编辑
摘要: 今天,通过一个例子,一方面熟悉trace在自定义范围内的分析,另一方面golang 在协程调度策略上的浅析。 Show Code 首先,代码的功能非常简单,只是启动10个协程,每个协程处理的工作都是一样的,即把0 ... 1000000000 做了sum 运算。 其次,代码中,添加了Task 和 T 阅读全文
posted @ 2020-04-18 10:20 搬砖程序员带你飞 阅读(3605) 评论(0) 推荐(0) 编辑
摘要: 简介 对于绝大部分服务,跟踪刨析是用不到的。但是如果遇到了下面问题,可以不妨一试: 怀疑哪个协程慢了 系统调用有问题 协程调度问题 (chan 交互、互斥锁、信号量等) 怀疑是 gc (Garbage Collect) 影响了服务性能 网络阻塞 等等 坦白的讲,通过跟踪刨析可以看到每个协程在某一时刻 阅读全文
posted @ 2020-04-17 10:10 搬砖程序员带你飞 阅读(1835) 评论(2) 推荐(1) 编辑
摘要: Python 作为一门解释型语言,又是一种动态类型的语言,其灵活性非常适合编写日常脚本。 一些日常不注重效率的需求可以用 来实现。何况 有足够的开源依赖包供我们使用。 本文主要介绍通过 语言实现对 Excel 和 Word 的操作,以及可能出现的坑。 几种选择 Python 对 Excel,Word 阅读全文
posted @ 2020-04-13 13:54 搬砖程序员带你飞 阅读(1635) 评论(0) 推荐(0) 编辑