近日,工作中用到了sync.Pool,所谓知己知彼,百战百胜,让我们了解它,掌握它,再去运用它吧!
代码源于 go1.18.7
标签:#
源码
源码杂货铺:sync.Mutex
sync.Mutex 是go标准库里一个常见且常用的结构,各种源码里出场频率也非常高。所以我们来学习一下它。知己知彼,少踩天坑。
源码杂货铺:Shopify/sarama
原项目Github 链接 :https://github.com/Shopify/sarama
sarama是一个go语言实现的kafka客户端,是官方推荐的kafka客户端之一
特点是简单,易用,很容易上手。再加上纯go语言开发,对于我们理解、排查问题以及魔改都比较方便。
目前github 8.2k stars
本文基于 sarama v1.31.1
个人注释版:https://github.com/freephenix/sarama
后续的更新会提交到这里,文章可能更新延迟
IO模型-epoll
其演进历史及意义是什么?epoll的核心机制是什么?为什么windows上epoll不够用?
源码杂货铺:Map与sync.Map
map是我们开发过程中常常会使用到的数据结构,那么
map是如何实现的?
map是否线程安全?
map有哪些需要注意的地方?
源码杂货铺:channel
Do not communicate by sharing memory; instead, share memory by communicating.
这句话相比大家都听过,"不要通过共享内存来通信,而要通过通信来实现内存共享"。
这就是 Go 的并发哲学,它依赖 CSP 模型,基于 channel 实现。
源码杂货铺:Redis-SDS
本文基于redis 5.0.3,
一起来看下,Redis动态字符串 SDS(simple dynamic string)都有哪些秘密
源码杂货铺:atomic包
原子(atomic)本意是"不能被进一步分割的最小粒子",而原子操作(atomic operation)意为"不可中断的一个或一系列操作"。
源码杂货铺:singleflight
当缓存被击穿,DB不被压垮的一个解法
源码杂货铺:sync.WaitGroup
了解一个包的使用,首先从阅读它的注释开始