首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
胡大海
掘友等级
安全开发
|
北京小厂
积跬步以至千里
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
34
文章 28
沸点 6
赞
34
返回
|
搜索文章
最新
热门
sync.Pool 源码解析
本文介绍了Go语言中的sync.Pool,它使用了CacheLine、GMP、Ringbuf,CAS等技术来优化热点数据竞争,跨越GC周期的缓存数据。同时,它还使用了生产者消费者模式来减少数据竞争,保
ETCD lease 实现
使用方式 lease 用于控制key的有效时间,一个lease可以和多个key绑定。在lease过期之后,lease会被撤销,相关联的key也会一并被删除。 客户端的使用方式如下: 创建lease 将
boltdb 事务实现
boltdb 事务实现 写事务执行流程 事务Commit的流程如下: reblance,重平衡。由于部分节点删了元素,可能导致节点数据量不符合要求。不符合要求的节点需要重平衡,对于不需要重平衡的节点要
boltdb 数据布局
page page定义是一个或者连续多个page size数据页的$\color{red}{头部数据}$(在下面图均用page header代替)。下面两个图分别展示了一个数据页和多个数据页存储一个节
golang select 源码解析
golang select 源码解析 背景 golang 中主推 channel 通信。单个 channel 的通信可以通过一个goroutine往 channel 发数据,另外一个从channel取
golang badger 源码解析
badger 数据写入 写入writeCh 写入reqs 函数内部是一个生产者消费者的模式,pendingCh是一个缓冲为1的channel,作为了生产者和消费者沟通的桥梁。 在缓冲中无数据的时候,生
golang timer源码解析
创建 新建Timer和Ticker的源码如下,两者基本结构一致。只是Ticker的runtimeTimer中有一个非零属性period,表示是周期性的tick。 新建Timer和Ticker的时候,都
golang sema源码解析
acquire 简单case cansemacquire。通过cas来获取信号量,如果为0则说明没有信号量,需要后续通过复杂方式来获得信号量。如果cas成功则说明成功获得信号量,acqure步骤可以到
goroutine 进入系统调用的流程
进入系统调用 退出系统调用 进入系统调用 退出系统调用 进入系统调用 退出系统调用 进入系统调用 退出系统调用
golang map源码解析
map 源码解析 基本结构 根据hint创建数组,数组的元素为桶(基本格式如下图)。如果B<=4,则数组大小为pow(2, B)。否则数组大小为pow(2, B)+pow(2, B-4),多出来的部分
下一页
个人成就
文章被点赞
31
文章被阅读
64,647
掘力值
1,508
关注了
9
关注者
17
收藏集
1
关注标签
10
加入于
2019-09-14