首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
go-数据结构
dteer387
创建于2023-02-27
订阅专栏
这里主要是看针对go的数据结构实现进行一个描述
暂无订阅
共10篇文章
创建于2023-02-27
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
1.哈希表概述
要想利用哈希,就要懂得它做了哪些事;或者是想要通过原有哈希进行延申;从全概出发去读懂哈希表都做了那些事情
2. go map源码-结构体
这篇的主要是描述了go map的相关结构体定义,理解结构体的对应字段含义能更好对源码阅读更通顺,通俗理解就是针对业务需求进行表结构的设计。
3.go map源码-创建/删除/添加/修改
本章节主要去探索go map的增删改的处理,对于源码中的一些优势摘录出来,进行分析总结。当然要站着旁观者的角度去分析方案优劣
4.go map源码-扩容/缩容
本章节主要讲述go map的扩容机制,增量扩容(全量搬迁会占用时间过长(不支持并发)),同时在新桶和旧桶之间的元素迁移的对应关系,到最后的迁移进度的最终一致性。
5.go map源码-查找/迭代
本章节讲述了查找和迭代的部分,如果是看完前4个章节的话,这部分的内容都是偏简单的,因为所有信息都已经在前四章节回顾一遍。
6.go map源码-延展(一致性哈希)
当你通读完该章节,其实你会发现,也是哈希表的一个变种;之所以引入该章节,就是希望能通过深入某个结构的实现,能领会贯通。
1.go slice源码
该章节主要阐述了切片的扩容策略和对应的实现,其中涉及到内存对齐和内存映射分配;里面的涉及到的内存分配的篇幅较大,难度也集中在这一块,暂时还没攻破。
1. go channel源码-结构体
1.概述 2.数据结构图 channel结构图: 3.数据结构描述 3.1 hchan结构体 字段 类型 含义 qcount uint 队列中元素数量 datasize uint 队列最大容量 buf
2.go channel源码-创建/关闭
本章节主要描述了channel的创建和关闭,里面涉及到包含指针结构体和非指针结构体区别,以及对数据回收的一些细节
3.go channel源码-发送/接收
本章节主要描述了channel的发送和接收,同时也阐述了sudo作为中介结构体,维护了goroutine和channel的关系